SQL发布热门标签

时间:2010-09-18 02:52:17

标签: sql mysql tags

我正在使用MySQL数据库并希望从我的博客中捕获顶级标签。该表如下所示:

++++++ post_tags ++++++
+ id INT(10)          +
+ post_id INT(10)     +
+ tag_id INT(10)      +
+++++++++++++++++++++++

++++++++ tags +++++++++
+ id VARCHAR(10)      +
+ title VARCHAR(50)   +
+ uri VARCHAR(75)     +
+++++++++++++++++++++++

我想通过将post_tags表中的post_id分组然后获取前5个条目来获取数据库中的top标签​​。它看起来像这样:

Green              157
Water               92
Rocks               88
Purple              53
Sky                 44

提前谢谢。

1 个答案:

答案 0 :(得分:0)

SELECT TOP 5 tags.title, COUNT(*) AS num_posts
FROM tags
INNER JOIN post_tags ON tags.id = post_tags.tag_id
GROUP BY tags.title
ORDER BY COUNT(*) DESC

此查询将省略没有帖子的标签。如果要包含它们,请使用LEFT OUTER JOIN