oracle使用两个内部联接更新值

时间:2016-03-13 05:27:19

标签: oracle

您好我试图使用另一个包含两个内部联接的表的值来更新表中列的值。

但是我的查询一直出错,这是否可以通过Oracle来更新具有两个内部联接的表。

update finaltbl1
(
select table1.old_val, table3.new_val
from
table1
inner join 
table2
on table1.id = table2.id
inner join
table3.name = table2.name
) finaltable1
set
x.old_val = y.new_val

或者是否需要将"合并到"

谢谢,

1 个答案:

答案 0 :(得分:0)

你可以这样更新:

update table1 t1
set old_val = (
   select table3.new_val
   from table2 inner join table3 on table3.name = table2.name 
   where table2.id = t1.id
)
where exists (
   select table3.new_val
   from table2 inner join table3 on table3.name = table2.name 
   where table2.id = t1.id
)