我有3个表新闻,新闻标签和标签,新闻标签新闻和标签之间的多对多关系。我想make sql查询获取所有带有相应新闻计数的标签。请帮忙。
答案 0 :(得分:5)
SELECT COUNT(*) as news_count, t.*
FROM Tag t
LEFT OUTER JOIN News_Tag nt
ON t.id = nt.tag_id
GROUP BY t.id
不要忘记外部联接以使标记为0消息。
答案 1 :(得分:2)
我需要知道列,告诉你确切的语法,但它看起来像;
SELECT TagName, COUNT(*)
FROM Tag t
INNER JOIN NEws_tag tn
ON t.TagID = tn.TagID
INNER JOIN News n
ON n.NewsID = tn.NewsID
GROUP BY TagName
的详细信息
答案 2 :(得分:1)
在不知道表格结构的情况下,很难给出答案。你可能想要这样的东西
select news.subject, tag.subject
from news, news_tag, tag
where news.id = news_tag.news
and news_tag.tag = tag.id
order by tag.subject
尝试并提高您的录取率。
答案 3 :(得分:1)
SELECT COUNT(*)
FROM news AS n
LEFT JOIN (news_tag AS nt, tag AS t)
ON (
nt.tag_id = t.tag_id
AND
nt.news_id = n.id
)
WHERE (
t.tag
IN (
'$tag'
)
)
答案 4 :(得分:0)
假设tag
和Tag
中都有一个名为News_tag
的列,并且您正在为每个News
查找Tag
项的数量:
SELECT Tag.tag, COUNT(*)
FROM Tag
INNER JOIN News_tag ON News_tag.tag = Tag.Tag
GROUP BY Tag.tag