MySQLにおいて、JOIN
を使用したUPDATE
文は、複数のテーブル間の関連を使って一つのテーブルを更新したい場合に使われます。UPDATE
文にJOIN
を組み合わせることで、他のテーブルの値に基づいて特定のテーブルの列を更新することができます。
基本的な書き方は次の通りです。
UPDATE テーブルA AS a
JOIN テーブルB AS b ON a.共通カラム = b.共通カラム
SET a.更新するカラム = b.参照カラム
WHERE 条件;
具体例
例えば、employees
テーブルとdepartments
テーブルがあり、employees
テーブルの従業員の部署IDをdepartments
テーブルの情報に基づいて更新するとします。
employees
テーブル:employee_id
,employee_name
,department_id
departments
テーブル:department_id
,department_name
以下のように、従業員のdepartment_id
をdepartments
テーブルのdepartment_name
が “Sales” の場合に更新することができます。
UPDATE employees AS e
JOIN departments AS d ON e.department_id = d.department_id
SET e.department_id = 3 -- 3は新しい部署ID
WHERE d.department_name = 'Sales';
注意点
JOIN
を使用する場合、ON
句で2つのテーブルの関連を指定する必要があります。WHERE
句を使って、更新する行をフィルタリングできます。- 複数テーブルを結合して更新する際は、慎重に条件を指定しないと、誤って不要な行まで更新してしまう可能性があります。
このようにして、他のテーブルと結合しながら条件に基づいて更新を行うことができます。