PostgreSQL根据关联表更新另一张表数据

关联表形式:

UPDATE 待更新表 t1
SET 待更新表字段 = t2.字段,
待更新表字段 = t2.字段
FROM
	关联表 t2 
WHERE
	t1.关联字段 = t2.关联字段


例:街镇表根据编号关联地区表,更新街镇名称
UPDATE town t1
SET town_name = t2."name"
FROM
	region t2 
WHERE
	t1.town_code = t2.code

子查询形式:

UPDATE 待更新表 t1
SET (待更新表字段, 待更新表字段) = 
(SELECT t2.字段, t2.字段 FROM 关联表 t2 WHERE t1.关联字段 = t2.关联字段)

注意点:

1.SET后的待更新字段不要加表别名(如t1),会识别成列名,报(column "表别名" of relation "待更新表名" does not exist)错误。

2.子查询形式字段要一一对应,顺序不能乱。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值