AMG Solution

【エラー解決方法】DELETE文にテーブルを結合時、エラーが出るのを解決する方法

こんにちは、松浦です。

先日、削除の条件に使いたくて、DELETE文にテーブルを結合したらエラーになりました。

こんなテーブルがあったとして、ここからjunin_detailテーブルのカラムであるtype「肉食」となるデータをjuninテーブルから削除しようとして、

素直にこう書いたらエラー・・・。

エラー内容

#1064 – You have an error in your SQL syntax; check the manual that corresponds to your MariaDB
server version for the right syntax to use near ‘INNER JOIN
junin_detail
ON junin_detail.junin_id = junin.junin_id
WHE’ at line 4

「INNER JOIN」のところでエラーになっています。

エラー発生時の環境

エラー発生時の開発環境は以下のとおりです。

DB
MySQL
バージョン
10.1.10-MariaDB
OS
Windows 10 HOME

原因

MySQLでは、DELETE文にJOINでテーブルを結合することができない。
SELECTやUPDETEのようにはいかないのですね……。
SQL severでは、すこし書き方を変えることでJOINできるようです。

解決方法

JOINを使わず、条件内で副問い合わせを行うことで解決しました。
副問い合わせ内でtype「肉食」となるデータのjunin_idを抽出し、削除の条件としています。簡単!

まとめ

無事に削除できました。
副問い合わせを上手に活用できるとなんだかドヤりたくなります。
これで次回からはさくっと消します!

MATSUURA'S BLOG

松浦美咲の記事

松浦美咲の記事の最新情報をお届けいたします。

SAME CATEGORY BLOG

この記事と同様のカテゴリー記事

新卒採用
はじめました。
LOADING