Php MYSQL加入帮助。是否根据单独注释表中的注释数获取结果?

Php MYSQL加入帮助。是否根据单独注释表中的注释数获取结果?,php,mysql,sql,codeigniter,join,Php,Mysql,Sql,Codeigniter,Join,这里是初学者!我试图编写一个查询,从结果表中选择对结果评论最多的3个结果。这些评论存储在一个单独的评论表中 results - id - title - body - etc - etc comments - id - result_id - user_id - timestamp - comment 所以我需要从results中选择all,并根据results.id和comments.result\u id之间的匹配量排序,但我真的不知道从哪里开始

这里是初学者!我试图编写一个查询,从结果表中选择对结果评论最多的3个结果。这些评论存储在一个单独的评论表中

results
 - id  
 - title    
 - body   
 - etc
 - etc

comments
 - id  
 - result_id
 - user_id
 - timestamp
 - comment
所以我需要从results中选择all,并根据results.id和comments.result\u id之间的匹配量排序,但我真的不知道从哪里开始


非常感谢你的帮助,非常感谢

或许可以尝试以下方法:

SELECT COUNT(c.id) AS comment_count FROM results r
LEFT JOIN comments c ON r.id=c.result_id
GROUP BY result_id ORDER BY comment_count DESC LIMIT 3;

或许可以尝试以下方式:

SELECT COUNT(c.id) AS comment_count FROM results r
LEFT JOIN comments c ON r.id=c.result_id
GROUP BY result_id ORDER BY comment_count DESC LIMIT 3;

没有测试,但你可以做类似的事情

SELECT  r.id  ,r.title, r.body
FROM results r INNER JOIN (SELECT result_id, count(id) cnt FROM comments GROUP BY result_id) c
ON r.id = c.result_id
ORDER by c.cnt DESC

没有测试,但你可以做类似的事情

SELECT  r.id  ,r.title, r.body
FROM results r INNER JOIN (SELECT result_id, count(id) cnt FROM comments GROUP BY result_id) c
ON r.id = c.result_id
ORDER by c.cnt DESC

以下方面应起作用:

SELECT r.id, COUNT(r.id) AS comment_count 
FROM results r 
INNER JOIN comments c 
ON results.id = c.result_id 
GROUP BY r.id 
ORDER BY comment_count DESC
连接两个表,其中结果id与comments表中引用的结果id相同。然后按结果id对行进行分组以删除重复项。COUNT函数对分组的行进行汇总,并显示行数

然后根据生成的注释计数对结果进行排序

您也可以使用leftouterjoin,然后您将得到所有没有注释的结果。你是否想要这个取决于你的需要


有关SQL联接的描述,请查看以下内容:

SELECT r.id, COUNT(r.id) AS comment_count 
FROM results r 
INNER JOIN comments c 
ON results.id = c.result_id 
GROUP BY r.id 
ORDER BY comment_count DESC
连接两个表,其中结果id与comments表中引用的结果id相同。然后按结果id对行进行分组以删除重复项。COUNT函数对分组的行进行汇总,并显示行数

然后根据生成的注释计数对结果进行排序

您也可以使用leftouterjoin,然后您将得到所有没有注释的结果。你是否想要这个取决于你的需要


有关SQL联接的说明,请查看

您可能希望在SELECT子句中包含结果id。您可能希望在SELECT子句中包含结果id。发布答案时请使用正确的联接语法。将from中的替换为join,并将where改为on。@GordonLinoff感谢您的提示。想起来太快了:-请在发布答案时使用正确的连接语法。将from中的替换为join,并将where改为on。@GordonLinoff感谢您的提示。想起来太快了:-