sql >> Base de Datos >  >> RDS >> Mysql

eliminar con unirse a la misma tabla

Aunque el manual parece sugerir que la sintaxis de INNER JOIN debería funcionar en un DELETE, sé que esta alternativa con la cláusula de unión movida a la condición donde funcionaría...

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

Editar:acabo de probar esto, que funcionó para mí:

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