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

MySQL | Vous ne pouvez pas spécifier la table cible 'a' pour la mise à jour dans la clause FROM

Vous ne pouvez pas supprimer d'une table et référencer la même table dans une sous-requête - juste une limitation de MySQL. Quelque chose comme ce qui suit devrait fonctionner :

DELETE FROM table_a 
USING table_a
INNER JOIN table_b
    ON table_a.code = table_b.code
    AND table_b.id = table_a.b_id
    AND table_b.table = 'testTable'
WHERE table_a.object_id = 1 
    AND table_a.code = 'code' 

La partie importante est USING . Si vous joignez simplement les deux tables, vous supprimerez des enregistrements des deux. USING indique à MySQL d'utiliser ces tables pour le traitement, mais de ne les supprimer que des tables dans le FROM clause.

http://dev.mysql.com/doc/refman/5.0 /fr/delete.html