2016-11-16 5 views
0

私はこの選択、連結列MYSQL

SELECT page.*, page_lang.*, category.title as category FROM page 
JOIN page_lang ON page.id = page_lang.id_page 
JOIN relation ON page.id = relation.from_id 
JOIN page_lang as category ON category.id_page = relation.to_id 
WHERE page.type = 'blog-detail' 
AND relation.type = 1 

この戻り重複行を持っていますタイトル|カテゴリ
1 |タイトル1 |カテゴリ1
2 |タイトル2 |カテゴリ1
3 |タイトル3 |カテゴリ2
1 |タイトル1 |カテゴリ2

しかし、私はこれが欲しい

ID PAGE |タイトル|カテゴリ
1 |タイトル1 |カテゴリ1、カテゴリ2
2 |タイトル2 |カテゴリ1
3 |タイトル3 |カテゴリ2

私がGROUP_CONCAT(category.title)を使用する場合、1行を返します。

+0

'page'テーブルの' TITLE'列の名前は何ですか?あなたが私たちに示したクエリが実際に出力を生成するのではないかと疑います。 –

答えて

1

を "UNIQUE" を試してみてください。

SELECT page.*, page_lang.*, group_concat(distinct category.title) as category FROM page 
JOIN page_lang ON page.id = page_lang.id_page 
JOIN relation ON page.id = relation.from_id 
JOIN page_lang as category ON category.id_page = relation.to_id 
WHERE page.type = 'blog-detail' 
AND relation.type = 1 
GROUP BY page.id 
+0

ありがとう!作品です! – NARTONIC

0

あなたはGROUP_CONCATを使用する必要があるコマンドを使用して

SELECT UNIQUE page.*, page_lang.*, category.title as category FROM page 
JOIN page_lang ON page.id = page_lang.id_page 
JOIN relation ON page.id = relation.from_id 
JOIN page_lang as category ON category.id_page = relation.to_id 
WHERE page.type = 'blog-detail' 
AND relation.type = 1 
+0

これは望ましい出力を与えません。 –