首页 > 解决方案 > postgresql: INSERT INTO table_A (col_b) SELECT col_d from table_B WHERE table_B.col_c = table_A.col_a

问题描述

我有 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 条件似乎不能这样使用。任何想法?

标签: sqlpostgresqlsql-updatesql-insert

解决方案


我想你想要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中的值tableb


推荐阅读