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

eliminare con l'unione della stessa tabella

Sebbene il manuale sembra suggerire che la sintassi INNER JOIN dovrebbe funzionare in un DELETE, so che questa alternativa con la clausola di join spostata nella condizione dove funzionerebbe....

DELETE  a.* FROM t1 AS a, t1 as b 
WHERE 
    a.some_field_b=b.some_field_b AND
    a.some_field_a = value_x AND 
    b.some_field_a = value_y

Modifica:ho appena provato questo, che ha funzionato per me:

DELETE a FROM t1 AS a 
INNER JOIN t1 as b USING(some_field_b) 
WHERE 
    a.some_field_a = value_x AND 
    b.some_field_a = value_y