我正在为我正在制作的论坛构建自己的标签系统。一切都很完美,但我试图回应一个最流行的标签列表,但我找不到使用哪个查询..
我的表格如下:
我需要20个最受欢迎的标签列表,因此tag_id在article_tag_xref表中最常出现的tag_names。有谁知道查询应该是什么样的人?谢谢!
答案 0 :(得分:4)
您可以使用以下查询:
else
SELECT t.tag_id, t.tag_name, COUNT(article_id) AS cnt
FROM Article_Tag_Xref AS a
INNER JOIN Tag AS t ON a.tag_id = t.tag_id
GROUP BY t.tag_id, t.tag_name
ORDER BY COUNT(article_id) DESC LIMIT 20
返回COUNT(article_id)
表中每个tag_ig
的出现次数。因此,按此计数按降序排序并应用Article_Tag_Xref
会返回20个最受欢迎的LIMIT 20
值。
答案 1 :(得分:0)
以下内容应该适合您,因为您只询问了没有计数的tag_names。
SELECT tag_name
FROM Tag
WHERE tag_id IN ( SELECT tag_id, COUNT(article_id)
FROM Article_Tag_Xref
GROUP BY tag_id
ORDER BY COUNT(article_id) DESC
LIMIT 20)
子查询返回前20 tag_ids
及其计数。