业务经理

微信扫描以上二维码

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
    同样头疼

迅睿系统漏洞

GeoSeo收录宝
GeoSeo收录宝(2026-10-07)
重构 推送和收录两大菜单,优化细节,使操作更加简单。
文件管理器
文件管理器(2026-10-05)
批量上传,删除,新建文件,在线编辑,统计大小
GEO系统
GEO系统(2026-10-05)
增加排名管理,排名总览、明细、趋势 运营客户端升级方法:重新生成客户...
手机微信登录
手机微信登录(2026-10-02)
针对微信小程序官方审核要求,增加移动网站首页、隐私说明入口、服务支持...
图标库管理
图标库管理(2026-10-02)
移除后台管理和会员中心的冗余启用引用开关。 内置图标库增加增量更新...
广告投放管理
广告投放管理(2026-09-30)
优化广告显示 更新调用代码为模板标签
模板界面管理
模板界面管理(2026-09-30)
增加模板标签代码生成功能
GeoSeo工具箱
GeoSeo工具箱(2026-09-29)
新增AI可见度检测 支持多品牌管理(品牌/别名/竞品,数据隔离,定...
自定义页面
自定义页面(2026-09-29)
自定义布局页面、创建企业宣传页面、创建活动页面等需求,自由添加显示控...
全库搜索
全库搜索(2026-09-28)
去除权限控制,模块搜索改为默认主副表关联搜索