Oracleの2つのテーブル関連の更新

342 ワード

1つのテーブルの1つのカラムupdateから別のテーブルの1つのカラム:
update  A a
   set a.userName =
       (select b.userName
          from  B b
         where b.userID = a.userID
           and rownum = 1)
 where exists (select 1 from  B c where c.userID = a.userID)

rownum=1は、サブクエリで1つの結果のみが返されることを保証するために、テーブルBに同じuserIDのレコードが複数あることを回避するためです.