Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL | Non è possibile specificare la tabella di destinazione 'a' per l'aggiornamento nella clausola FROM

Non puoi eliminare da una tabella e fare riferimento alla stessa tabella in una sottoquery, solo una limitazione di MySQL. Qualcosa come il seguente dovrebbe funzionare:

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 è USING . Se ti unisci solo alle due tabelle, eliminerai i record da entrambe. USING dice a MySQL di usare queste tabelle per l'elaborazione, ma di cancellarle solo dalle tabelle nel FROM clausola.

http://dev.mysql.com/doc/refman/5.0 /it/cancella.html