针对module、table等标签使用join联合表查询时,可以使用field参数来指定字段显示,当两个表字段相同的情况下会优先输出主表的字段,次表字段就不会输出,我们可以为次表字段设置别名来显示,例如:

主表a结构是:

id 自增
name 名称
content 内容

次表b结构是:

id 自增
aid 关联a表的id号
name b表名称(这里和a表字段有重复,默认情况下不会输出这个name值了)


常规关联的标签是这样的:

{table table=a join=b on=id,aid}


这样写的字段会输出:a表的全部字段+b表的aid字段,因为b表的id和name字段跟a表重复,因此这种标签不会输出这两个字段,我们可以指定field来输出字段

{table table=a field=name,b.id,b.name join=b on=id,aid}

这种写法会输出a表的name和b表的id,但是b表的name虽然也指定了,因为重复的原因b表的name还是不会输出,那么我们可以给b表的name指定一个别名

{table table=a field=name,b.id,b.name:bname join=b on=id,aid}

这样就可以把b表的name作为bname字段来显示出来了


还可以自己写field参数

{php $field=urlencode('`dr_a`.`name` as `aname`, `dr_b`.`name` as `bname`');}
{table table=a field=$field join=b on=id,aid}

这种写法就是原始sql标准写法

文档最后更新时间:2020-06-14 07:45:34
我来修改此文档(1) 不会操作怎么办?