如何在postgresql的列中为单个记录选择多个值

问题描述:

我有两个包含多对多关系的表。如何在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

其更好地在结果表中获取记录每个标签的ID分别。 –

+0

我也想要它,所以请告诉我我该怎么做? –

+1

你真的在使用哪个dbms?不要标签产品不涉及... – jarlh

为MySQL
试试这个

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