2009-01-09 9 views
1

est-il posssible d'exécuter une instruction de requête de suppression qui se joint à la même table, j'ai essayé plusieurs jointures (intérieur, gauche), mais aucun retour mysql chance erreursupprimer avec se joindre à la même table

exemple de ce que je besoin:

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' 
+0

erm, vous pouvez participer à une SUPPRIMER! Pourquoi ne serais-tu pas capable de le faire? –

Répondre

3

Bien que le manual semble suggérer la syntaxe INNER JOIN doit travailler dans un SUPPRIMER, je sais que cette alternative à la clause de jointure déplacé à l'état où 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 ce 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 
Questions connexes