blogger_id 1 2 3
帖子
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不聚合所有值,因此完全适用于此情况)。