1.博客
blogger_id 1 2 3
2.帖子
post_from_blogger_id 1 1 1 2 2 3
如您所见,博主鈩1发布的帖子多于其他博主,博主鈩3发布的博文少。问题 是如何建立一个查询,以选择所有博客并按其帖子数对它们进行排序?
SELECT bloggers.*, COUNT(post_id) AS post_count FROM bloggers LEFT JOIN blogger_posts ON bloggers.blogger_id = blogger_posts.blogger_id GROUP BY bloggers.blogger_id ORDER BY post_count
(注意:MySQL具有特殊的语法,可让您通过GROUP BY而不汇总所有值,这正是针对这种情况的)。