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'

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

中小企業内でITを担当する職員として働いてますYOHEIです(社内SE?)。ほぼ一人職場なので悠々自適に過ごしてますが、たまに仕事の相談相手がいないのが寂しいっちゃ寂しい。趣味はあれこれ考えて結局何も買わないウィンドウショッピングと、買いもしない中古車の情報サイトを巡ること。

コメントを残す

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