postgresql:插入表A(列b)从表b中选择列d,其中表b.列c=表A.列A

postgresql:插入表A(列b)从表b中选择列d,其中表b.列c=表A.列A,sql,postgresql,sql-update,sql-insert,Sql,Postgresql,Sql Update,Sql Insert,我有两张桌子。 表A: Col_a | Col_b -------------- abc | [null] def | [null] 表B: Col_c | Col_d ------------- abc | 123 def | 456 如何将表B中的d列插入表A中的B列? 以下是我尝试过的: INSERT INTO Table_A (Col_b) SELECT Col_d FROM Table_B WHERE Col.c = (SELECT Col_a FROM Table

我有两张桌子。 表A:

Col_a | Col_b
--------------
abc   | [null]
def   | [null]
表B:

Col_c | Col_d
-------------
abc   | 123
def   | 456
如何将表B中的d列插入表A中的B列? 以下是我尝试过的:

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

条件似乎不适用的地方可以这样使用。有什么想法吗?

我想你想要的是
更新
,而不是
插入

update tablea a
set col_b = b.col_d
from tableb b 
where b.col_a = a.col_c
对于其
列a
可在
表b
中找到的
列a
的每一行
表a
,这会将
列b
更新为
表b
列d
中存储的值