Mysql
 sql >> Base de données >  >> RDS >> Mysql

supprimer en rejoignant la même table

Bien que le manuel semble suggérer que la syntaxe INNER JOIN devrait fonctionner dans un DELETE, je sais que cette alternative avec la clause de jointure déplacée vers la condition where fonctionnerait....

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 :je viens d'essayer ceci, qui a fonctionné pour moi :

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