Ich möchte bestimmte Elemente aus der Datenbank löschen. Ich habe folgende Abfrage:
SELECT *
FROM sheets, entries
WHERE entries.sheetID = sheets.id AND sheets.clientID = 13
Dies funktioniert und gibt 2 Ergebnisse zurück.
Jetzt will ich das drehen SELECT
Frage in ein DELETE
Abfrage. Folgendes funktioniert jedoch nicht:
DELETE FROM sheets, entries
WHERE entries.sheetID = sheets.id AND sheets.clientID = 13
MySQL gibt den folgenden Fehler aus:
1064 - Sie haben einen Fehler in Ihrer SQL-Syntax.prüfe das Handbuch entspricht Ihrem MySQL-Server Version für die richtige Syntax zu verwenden in der Nähe von "WHERE entries.sheetID = sheets.id UND sheets.clientID = 13 "at Linie 1
Was mache ich hier falsch?
Antworten:
10 für die Antwort № 1MySQL 4 und höher unterstützt Löschen von mehreren Tabellen gleichzeitigmit der folgenden Syntax:
DELETE sheets, entries
FROM sheets, entries
WHERE entries.sheetID = sheets.id AND sheets.clientID = 13
Wenn Sie MySQL unter Version 4 verwenden, müssen Sie Zeilen aus einer Tabelle gleichzeitig löschen, und Sie können eine der anderen hier aufgeführten Lösungen verwenden.
2 für die Antwort № 2
Versuchen
DELETE sheets, entries
FROM sheets, entries
WHERE entries.sheetID = sheets.id AND sheets.clientID = 13
Ich habe SQL delete aus 2 Tabellen gleichzeitig gegoogelt und gefunden dieser Forenbeitrag
2 für die Antwort № 3
MySQL lässt Sie über einen Join löschen, aber Sie müssen angeben, welche Spalten verwendet werden, also würde die korrekte Syntax mit Ihrem Beispiel verwendet werden
DELETE-Blätter. *, Einträge. * FROM Blätter, Einträge WHERE entries.sheetID = sheets.id UND sheets.clientID = 13
0 für die Antwort № 4
Kannst du sowas versuchen?
DELETE FROM sheets
FROM sheets, entries
WHERE entries.sheetID = sheets.id AND sheets.clientID = 13
wenn Sie aus den Blättern löschen wollen und
DELETE FROM entries
FROM sheets, entries
WHERE entries.sheetID = sheets.id AND sheets.clientID = 13
wenn es von Einträgen ist
0 für die Antwort № 5
Ich glaube, du kannst nur DELETE
von einem Tisch zu einer Zeit.
DELETE FROM entries
WHERE entries.sheetID IN
(SELECT ID FROM sheets WHERE clientID = 13)
DELETE FROM sheets
WHERE sheets.clientID = 13
0 für die Antwort № 6
Sie können jeweils nur eine Tabelle löschen. Wenn Sie beide Löschvorgänge aus derselben Abfrage ausführen möchten, können Sie Folgendes tun:
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);