この記事では、SQLの相関サブクエリを使用してデータの更新と削除を行う方法について詳しく解説します。具体的なテーブルとコード例を用いて、この高度なテクニックの使い方を理解する手助けをします。
目次
はじめに:相関サブクエリとは
相関サブクエリは、外部のクエリに依存するサブクエリの一種です。このようなサブクエリは、外部のクエリが処理されるごとに評価され、その結果が外部クエリに反映されます。
基本的な形式
SELECT column1, column2
FROM table1
WHERE column1 = (
SELECT column1
FROM table2
WHERE table1.column2 = table2.column2
);
相関サブクエリでデータを更新する
使用するテーブルの説明
ID | Name | Salary |
---|---|---|
1 | John | 50000 |
2 | Jane | 60000 |
3 | Tom | 52000 |
コード例:給与の調整
UPDATE employees e1
SET salary = (
SELECT AVG(e2.salary)
FROM employees e2
WHERE e2.salary < e1.salary
);
結果の説明
このクエリは、各従業員の給与を、自分の給与よりも低い全ての従業員の給与の平均に更新します。
相関サブクエリでデータを削除する
使用するテーブルの説明
ID | Name | Orders |
---|---|---|
1 | Apple | 100 |
2 | Banana | 70 |
3 | Cherry | 120 |
コード例:低注文のフルーツを削除
DELETE FROM fruits f1
WHERE f1.orders = (
SELECT MIN(f2.orders)
FROM fruits f2
);
結果の説明
このクエリは、注文数が最も少ないフルーツをテーブルから削除します。
まとめ
相関サブクエリは、複雑なデータ操作タスクを容易に解決する強力なツールです。しかし、パフォーマンスに影響を与える可能性もあるため、使用する際は注意が必要です。この記事で紹介した例を参考に、自分自身の問題解決に役立ててください。
created by Rinker
¥4,554
(2024/11/25 11:07:48時点 Amazon調べ-詳細)
コメント