Hallo,
ich krieg's gerade nicht hin. Folgendes SQL-Statement funktioniert einwandfrei, um Datensätze in der Tabelle
jstree\_structure
zu löschen:
DELETE
s1 . * ,
c . *
FROM
jstree_structure
s1,
c -- c zum 1.
LEFT JOINcontent_offline
c ON s1.site_id = c.site_id -- c zum 2.
LEFT JOINjstree_structure
s2 ON s1.parent_id = s2.site_id
WHERE (
s2.site_id IS NULL
AND s1.parent_id
IS NOT NULL
)
OR s1.parent_id =2600
> MySQL meldet:
> #1066 - Not unique table/alias: 'c'
Ja. Das springt einem direkt ins Auge. Im ersten Statement genauso wie in den folgenden.
> Warum ist hier 'c' not unique. Habe ich irgendetwas übersehen?
Weil Du es zweimal verwendest. In der DELETE-Klausel kannst Du bereits auf Aliasnamen zugreifen, die erst später deklariert werden. In der FROM-Klausel geht das dagegen nicht. Ich weiß auch nicht, was Du mit dem Crossjoin bezweckst. Vermutlich willst Du in der FROM-Klausel \*kein\*
`, c`{:.language-sql}
verwenden.
Freundliche Grüße
Vinzenz