Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 按多个联接分组_Mysql_Sql_Database_Rdbms - Fatal编程技术网

Mysql 按多个联接分组

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

我已经搜索了这个问题,但找不到有效的解决方案

我有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    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的代码扩展。(调试基础。)但是--可能重复