我有3個表中的所有不同的值,恢復他們:JOIN表,而不用重複,但需要列
:::NEWS:::
ID | TITLE
1 | New A
2 | New B
:::TAGTONEW:::
NEWID | TAGID
1 | 1
1 | 2
2 | 2
2 | 3
:::TAGS:::
ID | TAG
1 | religion
2 | sport
3 | politic
並在此目標是搜索匹配的標籤給定列表消息(例如新聞與標籤體育和宗教)。好。問題是,當我這樣做:
SELECT * FROM news JOIN tagtonew ON news.id = newid JOIN tags ON tagid = tags.id
WHERE tag IN ('religion','sport');
結果將是3排,其中2重複New A
。好的,我可以使用GROUP BY news.id
獲得一行,但問題是我需要返回所有與New A匹配的標籤(我需要返回New A與體育和宗教有關),我該怎麼做?需要newid?提前致謝。
編輯
上面的一個會導致:
New A - religion
New A - sport
New B - sport
如果我組將是這樣的:
New A - religion
New B - sport
,但我需要知道,也關係到運動,因爲我需要以JSON的形式返回它。所以,我需要的輸出是這樣的:
New A - (religion, sport)
New B - sport
你正在使用什麼rdbms? MySQL的? SQLSERVER?甲骨文?什麼? –
SQLite + PHP ... –
看到我的編輯如下:D –