Ich versuche eine Abfrage wie folgt durchzuführen:
DELETE FROM term_hierarchy AS th
WHERE th.parent = 1015 AND th.tid IN (
SELECT DISTINCT(th1.tid)
FROM term_hierarchy AS th1
INNER JOIN term_hierarchy AS th2 ON (th1.tid = th2.tid AND th2.parent != 1015)
WHERE th1.parent = 1015
);
Wie Sie wahrscheinlich sehen können, möchte ich die Elternbeziehung zu 1015 löschen, wenn dieselbe Nachricht andere Eltern hat. Dies führt jedoch zu einem Syntaxfehler:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS th
WHERE th.parent = 1015 AND th.tid IN (
SELECT DISTINCT(th1.tid)
FROM ter' at line 1
Ich habe die Dokumentation überprüft und die Unterabfrage selbst ausgeführt, und alles scheint zu überprüfen. Kann jemand herausfinden, was hier falsch ist?
Update : Wie unten beantwortet, erlaubt MySQL nicht, dass die Tabelle, aus der Sie löschen, in einer Unterabfrage für die Bedingung verwendet wird.
DELETE t FROM table t ...