Bonjour,
j'ai cette requète :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
select pr0.num1 from pr0 where pr0.num1 is not null 
minus
select pr0.num1 from pm0, pr0 where pm0.nrid = pr0.num1
elle me ramène 16 enregistrements

Je veux supprimer ces 16 enregistrements en une seule requète. J'ai donc fait :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
DELETE pr0 WHERE pr0.num1 in(select pr0.num1 from pr0 minus select 
pr0.num1 from pm0, pr0 where pm0.nrid = pr0.num1)
mais ça me supprimer 875 enregistrements. Je ne comprends pas pourquoi.

De plus, j'aurais aimer faire une requète sans "IN" (trop long à l'exécution). Est ce que cette requète ferais la même chose que la mienne ? (je comprends pas bien comment marche le "EXISTS"

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
DELETE pr0 WHERE EXISTS(select pr0.num1 from pr0 minus select 
pr0.num1 from pm0, pr0 where pm0.nrid = pr0.num1
)

Merci d'avance pour vos réponses