インラインビューを使ったUPDATE文

テーブルのレコードを更新する場合、
通常の構文はこんな感じで単純に条件を指定して一致したレコードに対して更新をかけます。

 

テーブルに対して更新をかけるとき、
複雑な条件が無とシンプルに書けますが多くの場合、複雑な条件を指定しますよね。

 

条件によってはサブクエリ化して記述する法法もあると思いますが今日はインラインビューを使用したお話。
例としては以下のような感じです。

 

イメージ的には更新する対象をSELECTしてくる副問合せで書いてしまおう!
という事です。

SELECTした項目を使って外側のUPDATE文で更新をかけるので、
更新したい項目は内側のSELECT文で全て取得する必要があります。

別のテーブルのデータを使って目的のテーブルデータを更新したい場合などに便利です。