あるカラムの値を別テーブルのカラムの値で書き換えたい

テーブル1のカラム1を、テーブル2のカラム2の値で書き換えるために書いたSQL

テーブルのデータすべてではないのでWHERE句で条件指定。

 

UPDATE
  (
    SELECT A.COLUMN1 VALUE1,
           B.COLUMN2 VALUE2,
    FROM TABLE1 A
           INNER JOIN
         TABLE2 B
         ON
           A.TARGET_PK = B.PK
    WHERE A.COLUMN3 = 'categoryA'
  )
 SET VALUE1 = VALUE2;

 

知らないうちに上司にコードレビューされていた。

 

UPDATE TEBLE1 A
SET A.COLUMN1 =
      (
        SELECT B.COLUMN2 VALUE2
        FROM TABLE2 B
        WHERE A.COLUMN3 = 'categoryA'
          AND A.TARGET_PK = B.PK
      )
WHERE A.COLUMN3 = 'categoryA';

 

圧倒的にわかりやすい。

ただ使い終わった後なんだよなあ。。。