帝国CMS SQL标签多表查询
看到论坛里很多人都在问,如果能在用户投稿的文章后显示该用户的头像,如果能在 企业用户发布的信息 后显示该企业的其他信息等…
其实这些功能可以用SQL标签来实现的,现在我们来简单的谈谈SQL多表查询:
当然在做多表查询之间,必须要对帝国数据库中相关表的字段及其对应关系有大概的了解,不然是无法写出相应查询语句的。
废话少说,我们开始实践:
问题:在信息后显示发布该信息用户的 头像、QQ、MSN等相关信息
分析:
1、这样的查询应该会用到ecms_news表(其他模型表名自找),和存放用户的 真实姓名、头像、QQ、MSN等信息的enewsmemberadd表,共2张
2、标签模板中我们需要用的标签,一般的调用大概只需要[!—titleurl–] [!—title–] [!—newstime–] 这些,而[!—ftitle–] [!—smalltext–] [!—writer–] [!—befrom–] [!—newstext–]
这些基本很少用到,而系统只能允许我们调用这些内置标签,所以需要在不用的标签内选择几个来使用,选择的数量是和你要调用的信息个数成正比的。
实例:
信息后增加所投稿用户的 真实姓名 头像 信息。
找到 真实姓名 头像 分别对应 enewsmemberadd表内truename和 userpic字段,我们挑选了 [!—writer–] [!—befrom–]标签来显示它们。
开始写SQL,两张表的是用USERID这个字段关联的
select a.*,b.truename as writer,b.userpic as befrom from phome_ecms_news as a LEFT JOIN phome_enewsmemberadd as b ON a.userid=b.userid order by newstime desc limit 100
红色部分定义排序方式,绿色部分定义查询记录数,自定义列表中可不定义。
标签模板记住要放 [!—writer–] [!—befrom–] 标签,不然 真实姓名、头像 是不会显示的。
如果需要可以分页的,可以用自定义列表来调用,其他的调用大家自己思考吧。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。