JOINを使って他のテーブルのデータを参照しながらSQLでデータを更新する方法

この記事では、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操作は複数のテーブル間でのデータ整合性を保ちつつ効率よくデータ更新を行う手法です。実務においてもこの手法は頻繁に使われるので、しっかりと理解しておくことが重要です。

コメント

コメントする

目次