DISTINCTでGROUP_CONCATを使用しようとしていますが、別の列で区別を実行しています。 MySQLは、出力1とは異なる列のGROUP_CONTACTでDISTINCTを使用します。
GROUP_CONCAT(DISTINCT tags.tag SEPARATOR ' ') as tags"
しかし、タグは異なるIDと同じ文字である可能性があり、私はこのような何かをする必要があります:たとえば を、私はこれをやっている
GROUP_CONCAT(DISTINCT(tags.tag_id) tags.tag SEPARATOR ' ') as tags"
しかし私ができますこれについて、何か考えを見つけることはありませんか?
SIMPLIFIEDテーブルデータの例は、(複数の結合とテーブルをモデルとSQL要求が多く複雑である):
アイテムテーブル:
はのitem_id、タイトル、...
1 、スミス、...
2、ボブ、...
...
タグ表:
TAG_ID、タグ、は、トロント、1、...
3、トロント、1、モントリオール、1、...
2、
1 ...、をITEM_ID ...
4、新ニューヨーク、2、...
...
MySQLのクエリ:
...
SELECT items.item_id, items.title,
GROUP_CONCAT(DISTINCT tags.tag_id SEPARATOR ',') as tag_ids",
GROUP_CONCAT(DISTINCT tags.tag SEPARATOR ' ') as tags"
LEFT JOIN tags ON items.item_id = tags.item_id
GROUP BY items.item_id
..
期待される結果:
item1.title = "スミス"
item1.tag_ids = "1 2 3"
item1.tags = "モントリオールトロント"
...
実際の結果を:
item1.title = "スミス"
item1.tag_ids = "1 2 3"
item1.tags = "モントリオールトロント" < - BECAUSE DISTINCT
のプロダクトのCOUNTの不一致...
注: 私は私はあなたが欲しいものを100%わからないが、私が正しいならば、あなたは明確なtag_idsして、対応するタグをしたい
SELECT WHERE tags.item_id IN(SELECT ...)
良いコンテキストの説明ですが、どういう疑問がありますか。サンプルデータと期待される出力を見せてください。 \t [** How-to-Ask **](http:// stackoverflow。com/help/how-to-ask) \t \t [** START **](http://spaghettidba.com/2015/04/24/how-to-post-at)に最適な場所です-sql-a-public-forum /)を使用して質問品質を改善し、より良い回答を得る方法を学びます。 –
実際には、いくつかのデータと予想される出力を表示する必要があります。私はあなたの問題を理解するのに苦労しています。 –
私の質問を変更し、すべての説明を削除し、期待される結果と実際の結果を持つデータのみを入れてください – NaturalBornCamper