sql >> Base de Datos >  >> RDS >> Mysql

mysql | No puede especificar la tabla de destino 'a' para la actualización en la cláusula FROM

No puede eliminar de una tabla y hacer referencia a la misma tabla en una subconsulta, solo una limitación de MySQL. Algo como lo siguiente debería funcionar:

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 parte importante es USING . Si simplemente une las dos tablas, eliminará los registros de ambas. USING le dice a MySQL que use estas tablas para el procesamiento, pero solo elimine de las tablas en el FROM cláusula.

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