あるカラムの値を別テーブルのカラムの値で書き換えたい
テーブル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';
圧倒的にわかりやすい。
ただ使い終わった後なんだよなあ。。。