2つの表を比較してキーが一致する行をUPDATEする(UPDATE ~ FROM)
文書番号:20347
「テーブルB」をSELECTした結果で「テーブルA」をUPDATEするSQLです。
2つの表「テーブルA」と「テーブルB」を比較し、キーが一致する「テーブルA」の行の値を「テーブルB」の値でUPDATEします。
【SQL】
UPDATE TABLEA
SET TABLEA.COLUMN2 = TABLEB.COLUMN2
FROM TABLEB
WHERE TABLEB.KEY1 = TABLEA.KEY1
【サンプル】
「CODE」項目で比較し、「商品マスタ」のNAMEを「購入リスト」のNAMEでUPDATEします。
商品マスタ
|
購入リスト
|
→ |
商品マスタ
|
UPDATE 商品マスタ
SET 商品マスタ.NAME = 購入リスト.NAME
FROM 購入リスト
WHERE 購入リスト.CODE = 商品マスタ.CODE
複数の列をUPDATEする場合
UPDATE 商品マスタ
SET 商品マスタ.NAME = 購入リスト.NAME
,商品マスタ.PRICE = 購入リスト.PRICE
FROM 購入リスト
WHERE 購入リスト.CODE = 商品マスタ.CODE
※FROM のテーブルは JOIN などで結合することもできます
【参考情報】
Oracle Database で同様のことをする場合
・2つの表を比較してキーが一致する行をUPDATEする(UPDATE ~ SELECT)
・2つの表を比較してキーが一致する行をUPDATEする(UPDATE ~ SELECT)