Posez votre question Signaler

{mysql} delete sur un select avec join.. [Résolu]

kalimbra 417Messages postés 22 mars 2008Date d'inscription 8 février 2012Dernière intervention - Dernière réponse le 2 déc. 2009 à 07:51
Bonjour,
je me demandais s'il était possible de faire un delete sur un select sur la même table, mais jointé sur une autre table avec des conditions multiple ?
genre :
delete from Order_Line WHERE id_order IN (SELECT Order_Line.id_order_line FROM Order_Line LEFT JOIN session on Order_Line.id = session.id WHERE  Order_Line.id_order="985625421" AND (session.state = "closed" OR session.state ="inprogess" OR session.state="cancelled
"))
Lire la suite 

{mysql} delete sur un select avec join »

3 réponses
Réponse
+0
moins plus
Bonjour.

Oui, c'est possible.

Au pire tu peux aussi faire un :
DELETE FROM table WHERE EXISTS (SELECT * ...)...
Ajouter un commentaire
Réponse
+0
moins plus
Salut

Méfie-toi quand même du left join : des lignes sont renvoyées même s'il n'y a pas de correspondance. et si tu supprimes les lignes renvoyées, tu supprimes tout.

le secret du delete : fais un select pour voir ce qui sera supprimé puis fais un delete avec strictement la même clause where
Ajouter un commentaire
Réponse
+0
moins plus
Oui au final comme j'avais une erreur à ma requete de delete sur la même table que le select j'ai fait deux requètes tant pis).

Pour économiser les requete en double je crée ma requète de delete via une boucle dans le select, je reconstitue le requète et je la passe..
Ajouter un commentaire
Ce document intitulé « {mysql} delete sur un select avec join.. » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?