我在做一个文章发布系统:涉及到3张表
栏目表(lanmu):栏目id(lanmuid),栏目名称(lanmumingcheng)
文章表(wenzhang):文章id(wenzhangid),栏目id(lanmuid),文章标题(wenzhangbiaoti)
评论表(pinglun):评论id(pinglunid),文章id(wenzhangid),评论内容(pinglunneirong)
表与表之间的关系是这样的:
一个文章属于某个栏目下的(也就是说栏目下有很多文章),栏目和文章是一对多的关系。评论表和文章表是多对已的,也就是说某个文章的评论可能有多条。尽管他们之间存在这种关系,但是并没有建立约束。
我现在想做如下查询:
文章标题 所属栏目 评论数量
其中,所属栏目如果删除以后,那么文章标题还是要在列表中显示的。
那么这条sql该怎么写?
谢谢大家!
------解决方案--------------------------------------------------------
select a.wenzhangbiaoti 文章标题,b.lanmumingcheng 所属栏目,count(c.pinglunid) 评论数量
from 文章表 a
left join 栏目表 b on a.lanmuid=lanmuid
left join 评论表 c on b.wenzhangid=c.wenzhangid
group by a.wenzhangbiaoti ,b.lanmumingcheng
------解决方案--------------------------------------------------------
[code=SQL]SELECT WZ.WENZHANGBIAOTI, LM.LANMUMINGCHENG, COUNT(PL.PINGLUNID) SL
FROM WENZHANG WZ
LEFT JOIN LANMU LM ON WZ.LANMUID = LM.LANMUID
LEFT JOIN PINGLUN PL ON WZ.WENZHANGID = PL.WENZHANGID
GROUP BY WZ.WENZHANGBIAOTI, LM.LANMUMINGCHENG
[/code]
------解决方案--------------------------------------------------------
- SQL code
SELECT WZ.WENZHANGBIAOTI, LM.LANMUMINGCHENG, COUNT(PL.PINGLUNID) SL FROM WENZHANG WZ LEFT JOIN LANMU LM ON WZ.LANMUID = LM.LANMUID LEFT JOIN PINGLUN PL ON WZ.WENZHANGID = PL.WENZHANGID GROUP BY WZ.WENZHANGBIAOTI, LM.LANMUMINGCHENG
------解决方案--------------------------------------------------------