JOINを使って他のテーブルと結合し、データを削除する方法

SQLでは、`JOIN`を用いて複数のテーブルを結合することができますが、それだけではありません。`JOIN`と組み合わせて、特定の条件に基づいてデータを削除することも可能です。この記事では、その手法について詳しく解説していきます。

目次

なぜJOINを使って削除するのか

通常、SQLでデータを削除する場合、単一のテーブルに対して`DELETE`命令を発行します。しかし、複数のテーブルが関連している場合、単一のテーブルからデータを削除するだけでは不十分な場合があります。そのような場合に、`JOIN`を使って他のテーブルと結合した結果に基づいてデータを削除する方法が役立ちます。

基本的な削除のSQL文

最初に、単一のテーブルからデータを削除する基本的なSQL文について確認しておきましょう。

DELETE FROM テーブル名 WHERE 条件;

この基本形を理解した上で、`JOIN`を使ってデータを削除する方法に進みます。

JOINを用いたデータ削除の手法

`JOIN`を用いてデータを削除する際の一般的な構文は以下の通りです。

DELETE t1, t2 FROM table1 t1
JOIN table2 t2 ON t1.id = t2.id
WHERE 条件;

例:従業員と部署テーブル

以下に、`employees`テーブルと`departments`テーブルがあると仮定します。

従業員ID名前部署ID
1田中101
2佐藤102
3鈴木103
従業員テーブル
部署ID部署名
101営業部
102技術部
103人事部
部署テーブル

営業部(部署ID=101)が解散したと仮定して、その部署に所属する従業員のデータを削除するSQL文を作成する例を考えます。

DELETE employees, departments FROM employees
JOIN departments ON employees.部署ID = departments.部署ID
WHERE departments.部署ID = 101;

まとめ

`JOIN`を用いて他のテーブルと結合した結果に基づいてデータを削除する手法は非常に便利です。複数のテーブルが関連する複雑な状況で、効率よくデータを管理したい場合にはこの方法が有効です。

コメント

コメントする

目次