2010-09-18 38 views
0

我正在使用MySQL数据库,并期待从我的博客捕获顶部标签。该表是这样的:SQL的帖子顶部标签

 
++++++ 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表抓住了前5名参赛人数的POST_ID抢在数据库中的顶部标签。它看起来像这样:

 
Green    157 
Water    92 
Rocks    88 
Purple    53 
Sky     44 

在此先感谢您。

回答

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