1、T2表的SEX等于T2表的SEX。这个方法只能对T2表进行WHERE更新,不能对T1表进行WHERE更新
update temp2 t2 set t2.sex=(select t1.sex from temp1 t1 where t1.id=t2.id)
where t2.age>50
2、T2表的SEX等于T2表的SEX。这个方法可同时对T1、T2表进行WHERE更新,且要更新的T2表中数据必须在T1中存在
update temp2 t2 set t2.sex=(select t1.sex from temp1 t1 where t1.id=t2.id)
where exists (select 1 from temp1 t1 where t1.id=t2.id and t1.age>50 and t2.age>50)
3、T2表的SEX等于T2表的SEX。这个方法可同时对T1、T2表进行WHERE更新,且要更新的T2表中数据必须在T1中存在
(这里由于使用了中间内存表,因此可以很方便地改变两表左、右、全、内连接的方法来控制要更新的T2表中的数据范围)
update (select t1.sex s1,t2.sex s2 from temp1 t1,temp2 t2 where t1.id=t2.id and t1.age>50 and t2.age>50)
set s2=s1
(注意:这个写法必须要求两张表关键条件的字段有唯一约束或主键约束,这也是为了保证查询的结果必须是一对一关系)
----未完待续-----
原文链接:https://www.f2er.com/oracle/209846.html