SQL – DELETEコマンドでJOINを使って複数テーブルからデータを削除する方法
データベースにはmySQLを使用。
通常のデータ削除は
DELETE FROM tbl1 WHERE id = 'ID'
でtbl1からIDの行を削除する。これを単純にJOINでやってみようと思い下記のSQLを記述して実行してみた
DELETE FROM tbl1 INNER JOIN tbl2 ON tbl1.id = tbl2.tbl1_id WHERE tbl1.id = 'ID'
これでtbl1とtbl2からtbl1のidが’ID’に該当する行を削除できるんだと思って実行したがエラーが出る。
だけど以下の記述で解決した
DELETE tbl1, tbl2 FROM tbl1 INNER JOIN tbl2 ON tbl1.id = tbl2.tbl1_id WHERE tbl1.id = 'ID'
これで複数テーブルからデータを削除することができた。
コメントを残す