SQL – DELETEコマンドでJOINを使って複数テーブルからデータを削除する方法

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'

 
これで複数テーブルからデータを削除することができた。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください