是时候在类似博客的Web应用程序上实现排序了。除了按创建日期浏览外,我还希望用户也可以按答复数进行排序。

假设我有两个表blog_posts和replies,并且该答复有一个称为blog_post_id的字段(它是要回复的blog_post的外键),如何编写此查询?

“选择回复次数最多的30篇博客文章,并按降序排列每个博客文章的回答数。”

我也想对它进行分页。接下来的30个,接下来的30个等会很难吗?

我的感觉是,使用SQL并不是很难,我只是不知道该怎么做(仍在学习中)。

最佳答案

这应该可以解决问题:

SELECT blog_posts.*, count(replies.blog_post_id) as blog_replies
FROM blog_posts
LEFT JOIN replies ON replies.blog_post_id = blog_posts.id
GROUP BY blog_posts.id
ORDER BY blog_replies DESC


您可以在末尾添加一个LIMIT和OFFSET子句,以使分页工作。

关于sql - 编写按对象之间的关联数排序的查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/544284/

10-12 03:00