2016-10-17 4 views
-2

多対多の関係を持つ2つのテーブルがあります。postgresqlの列にある単一のレコードに対して複数の値を選択する方法

表1:

Code | Product | 
------------+----------+ 
00001  | product1 | 
00002  | product2 | 

表2:

Tag_id | name | 
-------+-------- 
1  | tag1 | 
2  | tag2 | 

関連する表:

Tag_id | Product_id 
--------+----------+ 
1  | product1 | 
1  | product2 | 
1  | product3 | 
2  | product4 | 
3  | product4 | 
4  | product4 | 

誰かが、私は以下のディスプレイのようなテーブル をgenrateことができる方法を教えてください

Code  | Product | Tags 
------------+----------+--------------- 
00001  | product1 | tag1,tag2 
00002  | product2 | tag1,tag3,tag4 

または複数の列のタグ。

+0

その良くしてみてください。 –

+0

私もそれが欲しいので、どうすればいいのですか教えてください。 –

+1

あなたは実際にどのdbmsを使用していますか?含まれていない製品にタグを付けないでください。 – jarlh

答えて

0

は、MySQL
のためのあなたの結果テーブルに分けて、各タグIDのレコードを取得するには、この

select Code,Product,Group_concat(name) from table1 
left join associatedTable on table1.product=associatedTable.product_id 
left join table2 on table2.tag_id=associatedTable.tag_id 
+0

これはどのDBMSですか? – jarlh

+0

PostgreSQLは 'group_concat'関数を持たず、OPはPostgreSQLを使用しているとコメントに書きました。 – jpmc26

関連する問題