ORACLE 關聯兩張表批量更新資料,實用方法

2021-09-28 14:41:46 字數 1286 閱讀 5885

case: 表一 新增字段 age, 需要從 表二中 將age資料同步到表一中,  或者 單純同步兩張表中的資料

表1:employee(被更新的表  字段  age  )

表2: t_user  資料**表 

只更新表1中 age 為null的資料

update employee e set age = (select u.age from t_user u where e.id=u.id )   where exists (select 1 from t_user u where e.id=u.id and e.age is null  )

更新表1全部資料

update employee e set age = (select u.age from t_user u where e.id=u.id )   where exists (select 1 from t_user u where e.id=u.id)

update employee e set age = (select u.age from t_user u where e.id=u.id )   where  e.id in (select id from t_user) and e.age is null

更新乙個字段:

merge into employee e using t_user u on (e.id=u.id ) when matched then update set e.age=u.age where e.age is null

更新多個字段: (與方法一和方法二相比,當更新多個欄位時這種方法很方便)

merge into employee e using t_user u on (e.id=u.id ) when matched then update set e.age=u.age,e.name=u.name

begin

for cur in (

select u.id,u.name,u.age from t_user u,employee e where u.id=e.id

)loop

update employee e set e.name= cur.name,e.age=cur.age where e.id=cur.id;

end loop;

end;

Oracle關聯兩張表批量修改某個字段

有兩張表a b,需要關聯這兩張表,對錶a中的某個字段,批量進行更新。一 業務描述 現有表a b分別儲存使用者基本資訊,且有主鍵可以關聯。因為資料新舊等關係,表a b中的資料不一致 表a,標紅的內容 比如姓名 性別等,且表b中的資訊是準確的。現有檢視a,需要從表a中獲取資料,因此,需要關聯表b,對錶a...

SQL兩張表如何關聯

比如 我有table1 和 table2 兩張表table1 id name 1 張三 男 2 李四 女 3 王五 男table2 比如 我有table1 和 table2 兩張表 table1 id name 1 張三 男 2 李四 女 3 王五 男 table2 id hobby lid 1 下...

兩張表關聯比較記錄是否相同

問題 已知兩張表ta tb,這兩張表的表結構完全相同。現在有這樣的要求,ta是根據要求按一定頻率抽取的資料,tb是儲存發生變化的表。每次抽取ta表,都會比較ta tb表,看這兩個表中是否存在完全一樣的資料項值。例子 ta tb的主鍵是ca1,則使用ta和tb表中的其他字段值比較 on ta.ca1 ...