/ /このMySQL SELECTクエリをDELETEクエリに変換する方法は? -mysql、sql、select、sql-delete

このMySQL SELECTクエリをDELETEクエリにするには? - mysql、sql、select、sql-delete

データベースから特定のアイテムを削除したい。次のクエリがあります。

SELECT *
FROM sheets, entries
WHERE entries.sheetID = sheets.id AND sheets.clientID = 13

これは機能し、2つの結果を返します。

今これを回したい SELECT へのクエリ DELETE クエリ。ただし、次は機能しません。

DELETE FROM sheets, entries
WHERE entries.sheetID = sheets.id AND sheets.clientID = 13

MySQLは次のエラーをスローします。

1064-SQL構文にエラーがあります。マニュアルを確認してください MySQLサーバーに対応 使用する正しい構文のバージョン 「WHERE entries.sheetID = シート.id ANDシート.clientID = 13 " ライン1

私はここで間違って何をしていますか?

回答:

回答№1の場合は10

MySQL 4以降のサポート 一度に複数のテーブルから削除する、次の構文を使用します。

DELETE sheets, entries
FROM sheets, entries
WHERE entries.sheetID = sheets.id AND sheets.clientID = 13

バージョン4より下のMySQLを使用している場合、一度に1つのテーブルから行を削除する必要があり、ここに投稿されている他のソリューションのいずれかを使用できます。


回答№2については2

お試しください

DELETE sheets, entries
FROM sheets, entries
WHERE entries.sheetID = sheets.id AND sheets.clientID = 13

私は一度に2つのテーブルからSQL削除をグーグルで見つけました このフォーラム投稿


答え№3の2

MySQLでは結合を削除できますが、列を指定する必要があるため、例を使用すると、正しい構文は次のようになります。

DELETE sheets。*、entries。* FROM pages、entries WHERE entries.sheetID = sheets.id ANDsheets.clientID = 13

回答№4の場合は0

このようなものを試すことができます

DELETE FROM sheets
FROM sheets, entries
WHERE entries.sheetID = sheets.id AND sheets.clientID = 13

シートから削除したい場合

DELETE FROM entries
FROM sheets, entries
WHERE entries.sheetID = sheets.id AND sheets.clientID = 13

そのfromエントリ


回答№5の場合は0

私はあなただけができると信じています DELETE 一度に1つのテーブルから。

DELETE FROM entries
WHERE entries.sheetID IN
(SELECT ID FROM sheets WHERE clientID = 13)

DELETE FROM sheets
WHERE sheets.clientID = 13

答え№6の場合は0

一度に1つのテーブルからのみ削除できます。同じクエリから両方の削除を実行したい場合、次のようなことができます:

DELETE from sheets where id in (
SELECT sheets.id
FROM sheets, entries
WHERE entries.sheetID = sheets.id AND sheets.clientID = 13);
DELETE from entries where id in (
SELECT entries.id
FROM sheets, entries
WHERE entries.sheetID = sheets.id AND sheets.clientID = 13);