如何根据另一个表的字段编写DML来更新表中的字段?

时间:2011-01-17 16:59:54

标签: oracle

假设有两个表'A'和'B'。 A(F1编号,F2编号)和B(F1编号,F2编号)。我想要一个dml来做到这一点: -

A.F1 = B.F1的所有行,设置A.F2 = B.F2。

(即)

  

如果A:[(1,34)(2,67)] B:   [(1,99)(2100)]

     

DML应将A更新为以下内容:

     

A:[(1,99)(2,100)]

提前致谢!

三位一体

1 个答案:

答案 0 :(得分:1)

听起来你只需要一个相关的更新

UPDATE a
   SET f2 = (SELECT f2
               FROM b
              WHERE a.f1 = b.f1)
 WHERE EXISTS (
    SELECT 1
      FROM b
     WHERE a.f1 = b.f1 );