Mysql
 sql >> Datenbank >  >> RDS >> Mysql

löschen mit Beitritt zum gleichen Tisch

Obwohl das Handbuch scheint vorzuschlagen, dass die INNER JOIN-Syntax in einem DELETE funktionieren sollte, ich weiß, dass diese Alternative mit der Join-Klausel, die in die Where-Bedingung verschoben wird, funktionieren würde ....

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

Bearbeiten:Ich habe es gerade versucht, was bei mir funktioniert hat:

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