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

delete juntando-se à mesma tabela


Embora o manual parece sugerir que a sintaxe INNER JOIN deve funcionar em um DELETE, eu sei que essa alternativa com a cláusula join movida para a condição where funcionaria....
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

Edit:Acabei de tentar isso, que funcionou para mim:
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