SQLの相関サブクエリでデータを更新・削除する完全ガイド

この記事では、SQLの相関サブクエリを使用してデータの更新と削除を行う方法について詳しく解説します。具体的なテーブルとコード例を用いて、この高度なテクニックの使い方を理解する手助けをします。

目次

はじめに:相関サブクエリとは

相関サブクエリは、外部のクエリに依存するサブクエリの一種です。このようなサブクエリは、外部のクエリが処理されるごとに評価され、その結果が外部クエリに反映されます。

基本的な形式

SELECT column1, column2
FROM table1
WHERE column1 = (
    SELECT column1
    FROM table2
    WHERE table1.column2 = table2.column2
);

相関サブクエリでデータを更新する

使用するテーブルの説明

IDNameSalary
1John50000
2Jane60000
3Tom52000
employees テーブル

コード例:給与の調整

UPDATE employees e1
SET salary = (
    SELECT AVG(e2.salary)
    FROM employees e2
    WHERE e2.salary < e1.salary
);

結果の説明

このクエリは、各従業員の給与を、自分の給与よりも低い全ての従業員の給与の平均に更新します。

相関サブクエリでデータを削除する

使用するテーブルの説明

IDNameOrders
1Apple100
2Banana70
3Cherry120
fruits テーブル

コード例:低注文のフルーツを削除

DELETE FROM fruits f1
WHERE f1.orders = (
    SELECT MIN(f2.orders)
    FROM fruits f2
);

結果の説明

このクエリは、注文数が最も少ないフルーツをテーブルから削除します。

まとめ

相関サブクエリは、複雑なデータ操作タスクを容易に解決する強力なツールです。しかし、パフォーマンスに影響を与える可能性もあるため、使用する際は注意が必要です。この記事で紹介した例を参考に、自分自身の問題解決に役立ててください。

コメント

コメントする

目次