質問: ORACLE UPDATE文の書き方(N:1)について教えてください
回答: > A_TBL : B_TBL は N : 1 の関係です。 > A_TBL.ITEM1, ITEM2(複数レコード)にB_TBLのITEM1, ITEM2(単一レコード)を設定したいです。 文字通り同じKEY値に対し、A_TBLはN件でB_TBLが1件、ということであれば、ROWNUM=1 がなくてもサブクエリは複数行戻さないので問題ないのでは? 逆ということであれば、ご提示の方法でもできますし、select 句に DISTINCT を入れる、でもよいかと思います。 ※ ROWNUM=1 の条件を入れる方法だと、万が一ITEM1とITEM2の組み合わせが複数登録されるバグが発生している場合でもエラーが起きないので気づけない、という欠点がありますが。 UPDATE A_TBL A SET (A.ITEM1 , A.ITEM2 ) = ( SELECT DISTINCT B.ITEM1 , B.ITEM2 FROM B_TBL B WHERE A.KEY = B.KEY )