【问题标题】:postgresql: INSERT INTO table_A (col_b) SELECT col_d from table_B WHERE table_B.col_c = table_A.col_apostgresql: INSERT INTO table_A (col_b) SELECT col_d from table_B WHERE table_B.col_c = table_A.col_a
【发布时间】:2020-09-18 09:05:57
【问题描述】:

我有 2 张桌子。 表A:

Col_a | Col_b
--------------
abc   | [null]
def   | [null]

表 B:

Col_c | Col_d
-------------
abc   | 123
def   | 456

如何将表 B 中的 Col_d 插入表 A 上的 Col_b? 这是我尝试过的:

INSERT INTO Table_A (Col_b) SELECT Col_d FROM Table_B
WHERE Col.c = (SELECT Col_a FROM Table_A);

WHERE 条件似乎不能这样使用。有什么想法吗?

【问题讨论】:

    标签: sql postgresql sql-update sql-insert


    【解决方案1】:

    我想你想要update,而不是insert

    update tablea a
    set col_b = b.col_d
    from tableb b 
    where b.col_a = a.col_c
    

    对于tablea 的每一行,其col_a 可以在tableb 中找到,这会将col_b 更新为col_d 中存储在col_d 中的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-05
      • 1970-01-01
      • 2019-11-09
      • 2022-08-02
      • 1970-01-01
      • 2020-07-13
      • 2011-01-29
      • 1970-01-01
      相关资源
      最近更新 更多