postgresql: INSERT INTO table_A (col_b) SELECT col_d from table_B WHERE table_B.col_c = table_A.col_a
postgresql: INSERT INTO table_A (col_b) SELECT col_d from table_B WHERE table_B.col_c = table_A.col_a
我有2张桌子。
Table答:
Col_a | Col_b
--------------
abc | [null]
def | [null]
Table乙:
Col_c | Col_d
-------------
abc | 123
def | 456
如何从 Table B 插入 Col_d 到 Table 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 条件似乎不能这样使用。有什么想法吗?
我想你想要 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
.
我有2张桌子。 Table答:
Col_a | Col_b
--------------
abc | [null]
def | [null]
Table乙:
Col_c | Col_d
-------------
abc | 123
def | 456
如何从 Table B 插入 Col_d 到 Table 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 条件似乎不能这样使用。有什么想法吗?
我想你想要 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
.