sql - 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 条件似乎不能这样使用。任何想法?
解决方案
我想你想要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
。
推荐阅读
- c++ - 在 UE4.22.3 及以上版本中将用户输入绑定到 UActorComponent 方法
- python - 在一行中分配多个不同的模拟
- android - IllegalStateException:如果设备已设置,则无法设置设备所有者
- javascript - 无法找到图片文件夹并收到 404 错误,但实时服务器工作正常
- sql - 需要每天分割日期时间范围
- matlab - 如何在 Matlab 图中为某些 x 值剪掉 y 轴的一部分
- azure - 如何从另一台电脑配置 kubectl?命名空间为空
- excel - 将数据从一个工作簿复制到当前工作簿时出错
- object - 找不到属性
- java - 我的报告在 Eclipse 中正常工作,但使用 jar 文件抛出“没有为 'MongoDbQuery' 注册的查询执行器工厂”