当前位置: 代码迷 >> Oracle认证考试 >> 求1sql语句,感激不尽
  详细解决方案

求1sql语句,感激不尽

热度:5829   发布时间:2013-02-26 00:00:00.0
求一sql语句,感激不尽!
我在做一个文章发布系统:涉及到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 

------解决方案--------------------------------------------------------
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



------解决方案--------------------------------------------------------
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 

------解决方案--------------------------------------------------------
引用:
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 


正解啊!
  相关解决方案