我已经搜索了问题,但找不到有效的解决方案。
我有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;
这给了我一个包含三列的输出,该列将用户与他们拥有的帖子以及在每个帖子上收到的评论联系起来。
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
我想找到用户总数最多的用户。为此,GROUP BY
用户无法正常工作。可以替代此任务吗?
答案 0 :(得分:0)
您可以使用GROUP BY
,ORDER BY
和LIMIT
:
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_id
在post
中。