我有3个表格News,News_tag和Tag,News_tag多对多的新闻和标签之间的关系。我想让SQL查询获得所有标签与相应的新闻计数。请帮忙。加入多对多的表格
加入多对多的表格
回答
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
不要忘外的deatails加入到与0的消息标签。
不知道表格的结构,很难给出答案。你可能想要像这样的东西
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
尝试并提高您的接受率。
-1,隐式加入是邪恶的! – 2011-06-17 08:46:49
@ Scorpi0:对我来说,降低隐式联接似乎比联接本身更加邪恶。好吧,太苛刻了,无论如何,因为解决方案是**工作**。 – 2011-06-17 09:49:32
working!=好... – 2011-06-17 10:07:09
假设有一个两Tag
和News_tag
命名tag
列,而你正在寻找的News
项目每个Tag
数量:
SELECT Tag.tag, COUNT(*)
FROM Tag
INNER JOIN News_tag ON News_tag.tag = Tag.Tag
GROUP BY Tag.tag
我需要知道coloumns告诉你确切的但是它看起来像这样;
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
我认为你的意思是n.NewsID = tn.NewsID – 2011-06-17 08:59:21
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'
)
)
'我想让sql查询得到所有标签都带有相应的新闻数'你有数,但不是新闻标签。 – Johan 2011-06-17 09:29:32
他的回答对我来说很难阅读,因为他希望给出标签的新闻数量。我会重写它,但Scorpi0的答案已经很棒了。 – 2011-06-17 16:29:08
- 1. 几个多对多表SQLAlchemy的加入
- 2. 加入SQLite中的表有多对多
- 3. 通过Rails中的多对多加入表格
- 4. 多对多嵌入式表格
- 5. 加入多个表格?
- 6. 加入多个MySQL表格
- 7. 内部加入“多对多”表格行作为数组
- 8. TSQL加入多个表的表格
- 9. mysql一对多表加入
- 10. 一对多表加入?
- 11. Linq to sql。多对多表加入
- 12. 多对多表加入透视
- 13. Linq加入多对多
- 14. 在Django 1.9中加入多个表格
- 15. 如何加入多个表格?
- 16. 加入使用多个表格
- 17. Laravel 5加入多个表格
- 18. QCubed - 在多列上加入表格
- 19. 加入多个表格和视图
- 20. MVC中多对多关系的表格
- 21. 我的Symfony2表格多对多是空
- 22. ENtity框架中的多对多表格
- 23. MVC中的多对多关系 - 使用外键写入表格
- 24. LINQ的多对多关系加入
- 25. 加入/链接/多对多的指导
- 26. MySQL的加入多对多单排
- 27. SQLAlchemy的许多一对多加入
- 28. 多对多的关系用加入
- 29. 多对多的关系cfwheels内加入
- 30. 如何加入其他表格相关的多个表格
我想现在用一个标签关联多少条新闻。 – 2011-06-17 08:53:27
Nerses请不要忘记接受可以帮助你的答案! – 2011-06-17 11:51:57