SQL update多表关联更新
程序员文章站
2022-06-01 16:46:16
...
两表关联更新
– 方法1. 子查询方式
UPDATE 表2
SET
表2.C = (SELECT B FROM 表1 WHERE 表1.A = 表2.A)
WHERE
exists ( SELECT 1 FROM 表1 WHERE 表1.A = 表2.A)
;
update TA a set(name, remark)=(select b.name, b.remark from TB b where b.id=a.id)
where exists(select 1 from TB b where b.id=a.id)
例如:
update T_GROUPS t set(t.eng_name,t.chn_short_name)=(select b.eng_name, b.chn_short_name from A_TEST b where t.chn_name = b.chn_name)
where exists(select 1 from A_TEST b where t.chn_name = b.chn_name)
– 方法2 merge into
MERGE INTO 表2
USING 表1
ON ( 表2.A = 表1.A ) -- 条件是 A 相同
WHEN MATCHED THEN UPDATE SET 表2.C = 表1.B -- 匹配的时候,更新