Oracle 两个表之间更新的实现

2014-11-24 18:14:24 · 作者: · 浏览: 0

前提条件:


表info_user中有字段id和name,字段id为索引


表data_user_info中有字段id和name,字段id为索引


其中表info_user中字段id和表data_user_info中字段id数值一致。


要求实现:


更新表info_user中的字段name 与表data_user_info中字段name一致。


实现的SQL语句为:


update info_user i set (i.name) = (select d.name from data_user_info d where d.id = i.id)


where i.id = (select d.id from data_user_info d where d.id = i.id);


commit;


-------------------------分割线-------------------------


Update Table a set a.ID=Table2.ID where a.Name = Table2.Name


  Oracle 不会通过。查了资料,Sql语句需要这样写才行


Update Table a set a.ID=(select b.ID from Table2 b where b.Name = a.Name ) where exist (select 1 from Table2 b.Name=a.Name)


  更新多个字段也可以


Update Table a set a.ID=(select b.ID from Table2 b where b.Name = a.Name ),a.Code=(select b.Code from Table2 b where b.Name = a.Name ) where exist (select 1 from Table2 b.Name=a.Name)