【SQL】UPDATEでJOINを使って更新する方法

このページでは、データを更新するSQLであるUPDATE文を使って、同時に複数の行、レコードを更新する方法を紹介しております。

UPDATE文のサンプルは↓で多数紹介していますので参考にしてください。
>>【SQL】UPDATE文の書き方:サンプル多数あり

UPDATE文の基本構文

UPDATE文の基本的な構文は次の通りです。

UPDATE テーブル名 SET 列名 = 値[,列名 = 値] [WHERE 条件];

JOINを使って更新する方法

JOINを使うことで、別の表とレコードを結合することで、
 ・更新する行の絞り込み
 ・別の表の値を使った更新
を実現することが出来ます。

次のサンプルでは、TAB1とTAB2テーブルのCOL1の値が一致するレコードだけを更新対象としています。さらに、TAB1テーブルのCOL2の値を、TAB2テーブルのCOL2の値で更新しています。

UPDATE
 tab1 a
 JOIN tab2 b ON a.col1 = b.col1
SET
 a.col2 = b.col2;

INNER JOINは次のように書きます。

UPDATE
 tab1 a
 INNER JOIN tab2 b ON a.col1 = b.col1
SET
 a.col2 = b.col2;

まとめ

UPDATE文で、JOINを使って更新する方法を紹介しました。

UPDATE文は、SET句の右辺やWHERE句に副問合せが書けるなど、非常に自由に記述できるのでぜひ活用してみてください。

この他にも、UPDATE文の様々な書き方を解説しております。
詳しくは「【SQL】UPDATE文の書き方:サンプル多数あり」で解説しているのでぜひ参考にしてください。