Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL | Você não pode especificar a tabela de destino 'a' para atualização na cláusula FROM


Você não pode excluir de uma tabela e fazer referência à mesma tabela em uma subconsulta - apenas uma limitação do MySQL. Algo como o seguinte deve 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' 

A parte importante é USING . Se você apenas unir as duas tabelas, excluirá os registros de ambas. USING diz ao MySQL para usar essas tabelas para processamento, mas apenas exclua das tabelas no FROM cláusula.

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