QA@IT

ORACLEからMySQLへのSQL変換

389 PV

次のOracle用のUPDATE文をMySQL用に変換したのですが、うまくいきません。ご教示お願いします。

UPDATE T_AAA A 
SET    ( A.CD1, A.CD2) = (
 SELECT B.CD1, 
        B.CD2
 FROM   T_BBB B 
 WHERE  A.CD3 = B.CD3 
        AND ( A.CD1 <> B.CD1 OR A.CD2 <> B.CD2 ) 
) 

試しに、下記のように変換してみたのですが、「UPDATEが全件にかかります」のような警告が出るため実行をためらっています。変換の仕方が誤っていますでしょうか。

update t_license as A,
(SELECT B.JGBMNCD, 
 B.TKBMNCD 
FROM   M_BUMON B, t_license A 
WHERE  A.BUMONCD = B.BUMONCD 
AND ( A.JGBMNCD <> B.JGBMNCD 
OR A.TKBMNCD <> B.TKBMNCD ) 
) as B
set A.JGBMNCD = B.JGBMNCD,
    A.TKBMNCD = B.TKBMNCD 
ウォッチ

この質問への回答やコメントをメールでお知らせします。