Php MYSQL加入帮助。是否根据单独注释表中的注释数获取结果?
这里是初学者!我试图编写一个查询,从结果表中选择对结果评论最多的3个结果。这些评论存储在一个单独的评论表中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之间的匹配量排序,但我真的不知道从哪里开始
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感谢您的提示。想起来太快了:-