业务经理

微信扫描以上二维码

028-61286886

技术咨询

摆脱必须主表才能在list里循环的join方法

开源系统 更新 2020-07-18 05:08:38 九天网络(JiuDay)

老样子,唠叨一下。

前阵子做网站,因为和客户沟通不清晰。 不知道有些字段需要列表中显示。所以设计的存储在附表。数据已经填充大半,要在list里循环的话必须主表。删除字段,重建有太麻烦。今日得空,翻看了下首页和官方的模版解析文件。发现 其实官方早已经洞悉一切,为我们预留好了解决方法。 

image.png

看手册,有join 和 on 这两个参数,熟悉php的人 肯定知道 这个是数据查询中关联表的参数。 首先了解官方的数据表设计,如news模块  自定义字段的时候 设置主表的话 也就是添加至  dr_news 表中 这样就可以在list里面循环出来, 默认的是添加至附表。毕竟字段都放在主表的话 是很操蛋的一件事。(我就是没注意到这么多 全部加到附表去了)

{list action=module catid=$catid join=1_news_data_0 on=id,id order=updatetime page=1}
标题:{$t.title}
地址:{$t.url}
内容:{$t.content}   //content就是主表中的字段 不用join的话 是不能在list中循环出来的 加入了join就可以了
{/list}
{$sql}//感兴趣的可以打印下sql 就知道其中的奥妙了

join就是 你要关联的表名称  on字段呢 也就是他们要管理的字段  如上面的list  两个表中的id是相同的 所以就填 id,id

当然 这个join不指查询附表的,更是可以任意表的

方案

  • 李小维 #1 · 2017-10-16 15:35:48
    这个方法只能用于5万条以内的数据,超过了5万条数据就会自动分表,1_news_data_1,1_news_data_2,1_news_data_N,那么用你这个方法就不管用了
  • 九天网络(JiuDay) #2 · 2017-10-16 15:44:04
    【李小维】1楼是的,分表了 数据表表名都不一样了 join查询自然会失效。但是如果你把字段都添加进主表的话 5万条数据 也够呛吧
  • 独舞 #3 · 2020-07-18 05:08:38
    同样头疼

迅睿系统漏洞

多语言翻译Seolang
多语言翻译Seolang(2026-09-21)
1. 新增译文数据备份恢复页面,支持断点续传 2. 多语言声明中心...
AI文章生成器
AI文章生成器(2026-09-20)
任务拆分独立配置 新增AI生成关键词 新增指令模板 新增品牌信...
GEO系统
GEO系统(2026-09-20)
后台 AEO 与运营端对齐:区域、跑批、CSV、补强、剧本均可在迅睿...
GeoSeo工具箱
GeoSeo工具箱(2026-09-18)
修正菜单规范
后台二次登陆验证
后台二次登陆验证(2026-09-18)
新增邮箱验证 新增短信验证
京东云短信
京东云短信(2026-09-17)
- 验证码有效期改只读展示 - 有效期旁新增系统设置按钮 - 保...
创蓝短信
创蓝短信(2026-09-17)
- 验证码有效期改只读展示 - 有效期旁新增系统设置按钮 - 保...
火山引擎短信
火山引擎短信(2026-09-17)
- 验证码有效期改只读展示 - 有效期旁新增系统设置按钮 - 保...
外贸多语言建站
外贸多语言建站(2026-09-17)
优化独立内容过滤机制