Mysql
 sql >> Base de données >  >> RDS >> Mysql

Requête de mise à jour MySQL utilisant une jointure gauche

Vous souhaitez donc déplacer des dossiers uniquement si un dossier du même nom sous le dossier parent cible ne le fait pas existe :

UPDATE file_manager_folder f1
LEFT OUTER JOIN file_manager_folder f2 
    ON f1.name = f2.name AND f2.parentId = 54
SET f1.parentId = 54 
WHERE f2.name IS NULL AND f1.id IN (1,2,3);

La condition de jointure recherche un dossier portant le même nom sous le parent cible. La clause WHERE teste qu'aucun dossier de ce type n'existe (f2.name est nul uniquement si la jointure externe ne trouve aucune correspondance).