我有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. 你如何加入實體框架中的多對多表格?
- 4. 加入實體框架中的多對多表格
- 5. 內部加入多對多表格與MySQL中的過濾器
- 6. 通過Rails中的多對多加入表格
- 7. 多對多嵌入式表格
- 8. 加入多個MySQL表格
- 9. 加入多個表格?
- 10. 多次加入表格
- 11. 多對多加入
- 12. 多對多加入
- 13. 內部加入「多對多」表格行作爲數組
- 14. mysql一對多表加入
- 15. 一對多表加入?
- 16. TSQL加入多個表的表格
- 17. ormlite加入3表(多對多)
- 18. SQL加入一對多 - 多個表
- 19. Linq to sql。多對多表加入
- 20. JPA多對多持續加入表
- 21. 多對多表加入透視
- 22. Linq加入多對多
- 23. 笨加入多對多LIMIT
- 24. 加入SQL中的多個表格
- 25. 加入多表與多對多的關係
- 26. 多表加入
- 27. 加入多對一
- 28. Mysql加入多個表格字段
- 29. QCubed - 在多列上加入表格
- 30. 嘗試加入多個表格
我想現在用一個標籤關聯多少條新聞。 – 2011-06-17 08:53:27
Nerses請不要忘記接受可以幫助你的答案! – 2011-06-17 11:51:57