SQL DELETE mit JOIN einer anderen Tabelle für WHERE-Bedingung
Ich habe zum löschen von Zeilen aus guide_category
die keine Beziehung mit guide
Tabelle (tot-Beziehungen).
Hier ist, was ich tun möchte, aber es natürlich nicht.
DELETE FROM guide_category AS pgc
WHERE pgc.id_guide_category IN (SELECT id_guide_category
FROM guide_category AS gc
LEFT JOIN guide AS g ON g.id_guide = gc.id_guide
WHERE g.title IS NULL)
Fehler:
Können Sie nicht angeben, Ziel-Tabelle 'guide_category' for update in FROM-Klausel
InformationsquelleAutor der Frage hsz | 2009-12-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aufgrund der sperren von Fragen der Umsetzung,
MySQL
nicht zulassen, verweisen auf die betroffene Tabelle mitDELETE
oderUPDATE
.Müssen Sie ein
JOIN
hier statt:oder benutzen Sie einfach eine
NOT IN
:InformationsquelleAutor der Antwort Quassnoi
Ich denke, aus deiner Beschreibung Folgendes ausreichen würde:
Ich gehe davon aus, dass es keine Einschränkungen der referenziellen Integrität auf die beteiligten Tabellen gibt es?
InformationsquelleAutor der Antwort Dirk
Versuchen, dieses Beispiel-SQL-Skripte für die einfache Verständnis,
Ihrem Fall ist:
InformationsquelleAutor der Antwort user2384628
Wie etwa:
InformationsquelleAutor der Antwort Philippe Leybaert