是时候在类似博客的Web应用程序上实现排序了.除了按创建日期浏览之外,我还希望用户能够按回复数量进行排序.
鉴于我有两个表blog_posts和回复,并且回复有一个名为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子句以使分页工作.