首页 > 解决方案 > SQL 更新表与连接另一个表的所有相应数据?

问题描述

运行 PostgreSQL 12.4。我正在尝试完成操作,但那里给出的语法似乎不适用于 psql,而且我找不到另一种方法。

我有以下数据:

Table 1

      ID             Trait
       1                X
       1                Y
       1                Z
       2                A
       2                B

Table 2

      ID        Traits, Listed
       1
       2
       3
       4

我想创建以下结果:

Table 2

      ID        Traits, Listed
       1            X + Y + Z
       2              A + B

连接 with+是理想的,因为某些特征具有固有的逗号。

感谢您的任何帮助!

标签: sqlpostgresql

解决方案


尝试类似:

update table2 
SET traits = agg.t
FROM 
(select id,string_agg(trait, ',') t from table1 group by id) agg
where
table2.id = agg.id;

小提琴手

与 + 连接将是理想的,因为某些特征具有固有的逗号。

您可以使用您喜欢的任何分隔符(只需将第二个参数更改为string_agg)。


推荐阅读