データベースから特定のアイテムを削除したい。次のクエリがあります。
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の場合は10MySQL 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);