一个比较复杂的sql问题,5个表联表查询,帮帮小弟

现在有5个表diary表:当type_id='1'是为说说discuss表:评论表key_id与diary中id对应用户表:有user_idusername还有一个fri... 现在有5个表
diary表:当type_id='1'是为说说

discuss表:评论表 key_id与diary中id对应

用户表:有user_idusername还有一个friend_list表:

还有一个praise表 点赞表 praised_id与diary中id对应

现在要做的是:
查询某个用户如user_id='xxx'的及其他所有好友的说说内容,说说的id, 用户名, 说说被评论次数,被点赞的次数
要一条sql写完。不知道能否实现
展开
 我来答
hnhygkx1987
2013-11-09 · TA获得超过209个赞
知道小有建树答主
回答量:210
采纳率:0%
帮助的人:141万
展开全部

可以的,不过楼主你也给点分吧! 这么多,都不给分不厚道!

select F.user_id ,U.username 
(
 SELECT COUNT(1) AS PLCOUNT   FROM diary D 
 LEFT JOIN discuss P ON P.key_id = D.ID 
 where d.user_id = F.user_id
) AS PLCOUNT,
(
 SELECT COUNT(1) AS DZCOUNT   FROM diary D 
  LEFT JOIN praise Z ON Z.praised_id =D.ID 
 where d.user_id = F.user_id
) AS plCount,
from friend_list F 
LEFT JOIN  user_id A ON F.FRIEND_ID  = A.user_id 
LEFT JOIN username U ON U.user_id = F.user_id 
WHERE A.user_id ='XXXX'
更多追问追答
追问

先谢谢你。

但是这段sql在mysql上运行不了。。。。可能是mysql不支持这种写法。。。

追答
select F.user_id ,U.username ,

(

SELECT COUNT(1) AS PLCOUNT FROM diary D

LEFT JOIN discuss P ON P.key_id = D.ID

where d.user_id = F.user_id

) AS PLCOUNT,

(

SELECT COUNT(1) AS DZCOUNT FROM diary D

LEFT JOIN praise Z ON Z.praised_id =D.ID

where d.user_id = F.user_id

) AS plCount,

from friend_list F

LEFT JOIN user_id A ON F.FRIEND_ID = A.user_id

LEFT JOIN username U ON U.user_id = F.user_id

WHERE A.user_id ='XXXX'

不好意思 username 后面少了个","号,你再看看! 这个应该在MYsql也是可以执行的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式