Mysql 按多个联接分组
我已经搜索了这个问题,但找不到有效的解决方案 我有3个表:用户、帖子、评论Mysql 按多个联接分组,mysql,sql,database,rdbms,Mysql,Sql,Database,Rdbms,我已经搜索了这个问题,但找不到有效的解决方案 我有3个表:用户、帖子、评论 select u.id user , p.id post , c.id comm from USer u join Post p on u.id = p.user_id join Comments c on p.id = c.post_id; 这给了我一个有3列的输出,它将用户与他们的帖子以及每个帖子上收到的评论联系起来 o/p类似于: user post c
select u.id user
, p.id post
, c.id comm
from USer u
join Post p
on u.id = p.user_id
join Comments c
on p.id = c.post_id;
这给了我一个有3列的输出,它将用户与他们的帖子以及每个帖子上收到的评论联系起来
o/p类似于:
user post comm
1 1 4
1 1 5
1 1 7
1 1 8
2 5 11
2 5 12
2 7 13
我想找到具有最大总通信数的用户。为此,用户上的
分组依据
不起作用。任务的备选方案是什么?您可以使用分组依据
,订单依据
,以及限制
:
select p.user_id, count(*) as num_comments
from Post p inner join
Comments c
on p.id = c.post_id
group by p.user_id
order by num_comments desc
limit 1;
请注意,因为您只需要用户id,所以不需要
user
表,因为user\u id
位于post
提示:groupby
<代码>订购人“不工作”没有帮助。请在代码问题中给出一个--cut&paste&runnable代码;具有期望和实际输出的示例输入(包括逐字错误消息);标签和清晰的说明和解释。这包括您能给出的最少代码,即您显示为OK的代码,由您显示为not OK的代码扩展。(调试基础。)但是--可能重复