Bonjour,

Je souhaite réaliser une suppression de données dans différentes tables avec un WHERE champ IN(...)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
DELETE FROM matable1 WHERE xxx IN (...)
DELETE FROM matable2 WHERE xxx IN (...)
...

je souhaite que les valeurs passées dans le IN soient le résultat d'une requête réalisée précédemment.

j'ai la solution première de placer systématiquement ma requête dans tous les IN. mais en terme de performances et de lisibilité du code, cela ne me convient pas.

j'ai aussi la solution de passer par un CURSOR (DECLARE moncurseur CURSOR FOR SELECT xxx ...) et de faire les DELETE en bouclant sur les valeurs de moncurseur. Idem, je ne suis pas sûr que ce soit le meilleure solution pour les perfs.

Avez-vous d'autres solutions?
Merci par avance.