MySQL-Aktualisierungsabfrage mit linkem Join

Table Schema

Tabellenname:file_manager_folder

Reihen:id , parentId, name

Meine Abfrage simuliert das Verschieben eines Ordners in einen anderen Ordner und akzeptiert ein Array mit IN (?).

Ich möchte, dass mein Update nur dann einen Ordner 'verschiebt', wenn es noch keinen Ordner mit derselben Eltern-ID und demselben Namen gibt. Das Verhalten, das Sie unter einem normalen Dateisystem erwarten würden.

So zum Beispiel:

UPDATE file_manager_folder set parentId = 54 where id IN( '1','2',3') 

Würde eine Abfrage sein, die nichts über die Eltern-ID und den Namen prüft ... Aber wie kann ich den linken Join zum Laufen bringen.

Hier ist eine, die ich ausprobiert habe .. die funktioniert überhaupt nicht.

SELECT * FROM 
    file_manager_folders as a
LEFT JOIN file_manager_folders as b on a.id = b.id 
WHERE b.id IS NOT NULL and a.id IN("1","2","3") and a.parentId = 54

UPDATE table1 LEFT JOIN table2 SET t1.x = t2.y ON condition WHERE conditions

Antworten auf die Frage(8)

Ihre Antwort auf die Frage