Oracle 关联两表写update语句

两种方法:


-- 方法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)

  
-- 方法2
MERGE INTO 表2
USING 表1
ON ( 表2.A = 表1.A )    -- 条件是 A 相同
WHEN MATCHED THEN UPDATE SET 表2.C = 表1.B   -- 匹配的时候,更新

eg
update c_mp mp set mp.mp_no =(SELECT  t3.f1  FROM  qw_dr_temp t3  WHERE   t3.f4 = mp.mp_id)
WHERE EXISTS ( SELECT  t4.f1  FROM  qw_dr_temp t4 where t4.f4 =mp.mp_id)

猜你喜欢

转载自mengjichen.iteye.com/blog/2376258