因此,假设我想选择我所有博客文章的 ID,然后选择与该博客文章相关的评论计数,我如何使用 GROUP BY 或 ORDER BY 以便返回的列表按每篇文章的评论数量排序?
我有这个查询返回数据但不是按我想要的顺序?更改组没有区别:
SELECT p.ID, count(c.comment_ID)
FROM wp_posts p, wp_comments c
WHERE p.ID = c.comment_post_ID
GROUP BY c.comment_post_ID;
最佳答案
我不熟悉 SQL92 之前的语法,所以我会用我熟悉的方式来表达它:
SELECT c.comment_post_ID, COUNT(c.comment_ID)
FROM wp_comments c
GROUP BY c.comment_post_ID
ORDER BY COUNT(c.comment_ID) -- ASC or DESC
你用的是什么数据库引擎?至少在 SQL Server 中,除非您从帖子表中提取更多数据,否则不需要联接。加入:
SELECT p.ID, COUNT(c.comment_ID)
FROM wp_posts p
JOIN wp_comments c ON c.comment_post_ID = p.ID
GROUP BY p.ID
ORDER BY COUNT(c.comment_ID)
关于SQL Join 和 Count 不能正确 GROUP BY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/933040/