はじめに
OracleでテーブルAとテーブルBを結合して、条件にマッチするレコードを複数レコード同時に更新する方法について書いています。
Oracleの基本 ~データベース入門から設計/運用の初歩まで
posted with amazlet at 19.09.29
渡部 亮太 相川 潔 日比野 峻佑 岡野 平八郎 宮川 大地
技術評論社
売り上げランキング: 65,273
技術評論社
売り上げランキング: 65,273
用意したテーブル
以下のようなテーブルを用意します。
- テーブル01
- テーブル02
テーブル01と02は同じようなデータ構造をしていて、性別が女性のレコードのみ、名前を変更しています。
今回は、女性のレコードのみ、table02のNAMEとFURIGANAでtable01テーブルのカラムを更新するといったことを1回のSQL発行で実現してみます。
JOINを使ったUPDATE文で複数レコードを同時に更新する
ポイントは、Update句の中でJoinが使えないのでサブクエリ内でJOINを指定します。
UPDATE ( SELECT t1.NAME t1name, t1.FURIGANA t1furigana, t1.SEIBETSU t1seibetsu, t2.NAME t2name, t2.FURIGANA t2furigana, t2.SEIBETSU t2seibetsu FROM table01 t1 INNER JOIN table02 t2 ON t1.id = t2.id ) SET t1name = t2name, t1furigana = t2furigana WHERE t1seibetsu = '女';
実行結果
関連記事