クエリを探して、親IDがマスターレコードと一致しない子テーブルのすべてのレコードを削除します。
マスターテーブル
1. David
2. Fin
3. Lisa
子テーブル
1. 100
1. 200
2. 200
2. 222
8. 100
9. 100
子テーブルに必要な出力
1. 100
1. 200
2. 200
2. 222
子テーブルからレコード#8と9を削除したいのですが、親IDがありません。
ありがとう
クエリを探して、親IDがマスターレコードと一致しない子テーブルのすべてのレコードを削除します。
マスターテーブル
1. David
2. Fin
3. Lisa
子テーブル
1. 100
1. 200
2. 200
2. 222
8. 100
9. 100
子テーブルに必要な出力
1. 100
1. 200
2. 200
2. 222
子テーブルからレコード#8と9を削除したいのですが、親IDがありません。
ありがとう
DELETE
操作で外部結合を使用できます。
DELETE a
FROM child a
LEFT JOIN master b ON a.parent_id = b.id
WHERE b.id IS NULL
これを行う必要を防ぐために、調べる必要があるのは、親(マスターテーブルの行)を削除するたびに実行される参照CASCADEアクションです。
ON DELETE CASCADE
子テーブルの外部キーを設定している場合、削除された親は、対応するすべての「子」も削除されます。