如何在postgresql的列中针对单个记录选择多个值[重复]

Posted

技术标签:

【中文标题】如何在postgresql的列中针对单个记录选择多个值[重复]【英文标题】:How to select multiple values against single record in a column in postgresql [duplicate] 【发布时间】:2017-02-26 01:47:07 【问题描述】:

我有两个具有多对多关系的表。

表 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 |

请告诉我如何生成表格 如下图所示:

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

或多列中的标签。

【问题讨论】:

最好在结果表中分别获取每个标签 ID 的记录。 我也想要,请问我该怎么做? 您真正使用的是哪些 dbms?不要标记不涉及的产品... Postgresql....! 所以删除其他 dbms 标签。请原谅那些回答您问题的可怜人,而不是其他 dbms 产品。 【参考方案1】:

对于 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

【讨论】:

这是用于哪个 dbms? PostgreSQL 没有group_concat 函数,OP 已经在 cmets 中指出他们正在使用 PostgreSQL。

以上是关于如何在postgresql的列中针对单个记录选择多个值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何防止表格单元格(不是单个单元格)的列中的换行?

SQL查询从postgresql数据库表中具有数组数据类型的列中获取数据。

PostgreSQL:如何将多行的值放在不同的列中,并将所有值合并到一行中?

我如何从Laravel中具有多行的列中扣除单个值

读取一个变量 JSONB 并将其放入 postgresql 的列中

如何在 DolphinDB 表的列中选择唯一元素?