別テーブルでSELECT JOINしながらUPDATEする方法(SELECTした結果でUPDATEする)

別のテーブルの値でレコードを更新したいというとき、SELECTを行った結果を、UPDATEすることになり、プログラムなどでループする手法をとることがあります。
しかしSQL文のみで、これを行うことができ、SELECTの副問い合わせを使用してUPDATEします。
ところがMySQLではUPDATE文にSELECTの副問い合わせをすることができません。

複数のテーブルをJOINした結果でUPDATEするには、UPDATE文のテーブルを複数指定し、変更するテーブルレコードのみにSETを指定します。

UPDATE A_table, B_table SET A_table.name = B_table.name WHERE A_table.id = B_table.id

このようにすることで、テーブルA_tableのレコードとテーブルB_tableのレコードでidが一致するもののテーブルA_tableのnameカラムをテーブルB_tableの値で書き換えることができます。

関連記事

スポンサーリンク

GoogleChromeでSSL接続を強制される設定(HSTS)のキャッシュを消す方法

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る