この記事では、SQLにおいてJOINを使って他のテーブルのデータを参照しながらデータを更新する方法について詳しく解説します。具体的な例とともに、この高度な操作を効率よく行うテクニックを学びましょう。
目次
はじめに
多くのデータベース操作では、単一のテーブルに対するCRUD(Create, Read, Update, Delete)が基本ですが、実際の業務では複数のテーブルが関連していることが多いです。そこで活躍するのがJOIN句を使った複雑なクエリです。特に、他のテーブルのデータを参照しながらデータを更新する場合には、この手法が非常に有用です。
基本的なUPDATEとJOINの復習
まず、基本的なUPDATE文とJOINについて短く触れます。
UPDATE文の基本形
UPDATE テーブル名 SET 列名1 = 値1, 列名2 = 値2 WHERE 条件;
JOINの基本形
SELECT 列名1, 列名2 FROM テーブル1
JOIN テーブル2
ON テーブル1.列名 = テーブル2.列名;
JOINを使ったUPDATEの基本形
JOINを使ったUPDATE操作の基本形は以下のようになります。
UPDATE テーブル1
SET テーブル1.列名1 = テーブル2.列名2
FROM テーブル1
INNER JOIN テーブル2 ON テーブル1.列名A = テーブル2.列名B
WHERE 条件;
具体例:従業員テーブルと給与テーブル
ここでは、従業員テーブル(employees)と給与テーブル(salaries)があると仮定して、給与の更新を行います。
従業員テーブル(employees) | 給与テーブル(salaries) |
---|---|
社員ID: 1 名前: 田中 | 社員ID: 1 給与: 300,000円 |
社員ID: 2 名前: 山田 | 社員ID: 2 給与: 350,000円 |
UPDATE employees
SET employees.給与 = salaries.給与 * 1.1
FROM employees
INNER JOIN salaries ON employees.社員ID = salaries.社員ID
WHERE employees.社員ID <= 2;
このクエリでは、社員IDが2以下の従業員の給与を、給与テーブルの給与に1.1を掛けた値に更新しています。
まとめ
この記事で学んだ点を要約すると、JOINを使ったUPDATE操作は複数のテーブル間でのデータ整合性を保ちつつ効率よくデータ更新を行う手法です。実務においてもこの手法は頻繁に使われるので、しっかりと理解しておくことが重要です。
コメント