2016-09-22 3 views
1

私は2つのテーブルを持っています。ギャラリーと結合。結合 - 1つのテーブルから行を取得し、別のテーブルに一致するすべての行を取得しますか?最初のテーブル一致行は繰り返さないでください。

Gallery 
id | title 
1 | Dog Gallery 
2 | Cat Gallery 

Joins 
id | gallery_id | picture_id 
1 |  1  |  100 
2 |  1  |  101 
3 |  2  |  56 
4 |  1  |  102 

私は、ID、ギャラリーからギャラリーのタイトルを取得したい - idは、特定のIDと同じであるが、また、ギャラリーIDは、特定のギャラリーのidに等しい加入からすべての行を取得します。

idが1の場合、私はギャラリーからのdoggalleryとjoinからのpicture_ids 100,101と102を望みます。

今、問題はギャラリータイトルが1回来ることです。 結果はタイトル=犬のギャラリーpicture_id = 100、タイトル=犬のギャラリーpicture_id = 101、タイトル=犬のギャラリーpicture_id = 102このような結果が必要です title = dog gallery picture_id = 100、picture_id = 101、picture_id = 102

+0

が同様に期待された結果を追加し、文字列としてすべてのIDを持っているGROUP_CONCATを使用することができます。 – Wanderer

答えて

1

あなたは

SELECT G.*, GROUP_CONCAT(DISTINCT P.picture_id ORDER BY P.picture_id DESC SEPARATOR ',') 
FROM gallery as G 
LEFT JOIN pictures as P ON P.gallery_id = G.id 
GROUP BY G.id; 
+0

私の問題を解決してくれてありがとう –

関連する問題