SQL update多表关联更新

    • – 方法1. 子查询方式
    • – 方法2 merge into

两表关联更新

– 方法1. 子查询方式

UPDATE2
SET2.C  =  (SELECT  B  FROM1  WHERE1.A = 表2.A)
WHERE
  exists ( SELECT 1 FROM1  WHERE1.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 INTO2 
USING1
ON ( 表2.A = 表1.A )    -- 条件是 A 相同
WHEN MATCHED THEN UPDATE SET2.C = 表1.B   -- 匹配的时候,更新

你可能感兴趣的:(Oracle,Other)