私は3つのテーブルを持っており、それらを再開しています:
:::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
そして、これの目的は、指定されたタグのリストに一致するニュースを検索することです (たとえば、スポーツと宗教のタグを持つニュース)。Ok。問題は、私が次のようなことをするときです:
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
1 行だけを取得するために使用できますが、問題は、New A に一致するすべてのタグを返す必要があることです (New A がスポーツと宗教に関連していることを返す必要があります)。newid を要求していますか? 前もって感謝します。
編集
上記の結果は次のようになります。
New A - religion
New A - sport
New B - sport
私がグループ化すると、次のようになります。
New A - religion
New B - sport
しかし、JSON で返す必要があるため、A もスポーツに関連していることを知る必要があります。したがって、出力を次のようにする必要があります。
New A - (religion, sport)
New B - sport