有两张表,现想根据表2的内容更新表1的内容(只修改不同部分),基于性能的考量,这里不考虑用游标。
我的SQL语句为:
update test1 set age = (select age from test2 where depart = test1.depart and name = test1.name),
tall = (select tall from test2 where depart = test1.depart and name = test1.name)
where exists (select 1 from test2 where name = test1.name and depart = test1.depart
and (age != test1.age or tall != test1.tall));
有没有更好的办法?
多谢了
a little bit improved update statement:
update test1 set (age, tall) = (select age, tall from test2 where depart = test1.depart and name = test1.name)
where exists (select 1 from test2 where name = test1.name and depart = test1.depart
and (age != test1.age or tall != test1.tall));