Oracle 关联两表写update语句

有表1和表2,表1有字段A,字段B,A为主键,表2也有字段A(不是主键),还有字段C,我希望把表1的字段B赋给表2的C字段,如何写?

两种方法:


-- 方法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   -- 匹配的时候,更新

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-29
update t2 set c=(select b from t1 where t1.a = t2.a)
where exists(select 1 from t1 where t1.a = t2.a)本回答被网友采纳
第2个回答  2013-07-29
update 表2 set 表2.C=表1.B from 表1 inner join 表2 on 表1.A=表2.A

第3个回答  2013-07-29
update 表2
set B=C
from 表1,表2
相似回答