bonjour
comment écrire dans PLSQL developer 1 requête avec les conditions (mal écritres) suivantes :
Bichette
Code : Sélectionner tout - Visualiser dans une fenêtre à part select id from A where id not in (select idA from B or select idB from B)
bonjour
comment écrire dans PLSQL developer 1 requête avec les conditions (mal écritres) suivantes :
Bichette
Code : Sélectionner tout - Visualiser dans une fenêtre à part select id from A where id not in (select idA from B or select idB from B)
Bonjour,
Il suffit de remplacer le OR par un UNION.
Tatayo.
merci ! UNION fonctionne mais la requete au bout de 10 min tourne encore
peut-on l'écrire d'une autre façon avec except ou leftjoin ..?
Peut-être avec un except:
Ou avec une jointure externe:
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 select id from TableA except ( select id1 from TableB union all select id2 from TableB )
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 select TableA.id from TableA left outer join TableB on TableA.id = TableB.idA or TableA.id = tableB.idB where tableB.id is null
Tatayo.
grand merci :-)
pourquoi union all et non union ?
et si ds la requete on souhaite amener ttes les colonnes :
select * from table A where id .... ? comment l'écrire d'après vous svp ?
UNION sans ALL opère un dédoublonnage, c'est couteux
UNION ALL ne le fait pas
Donc si pas besoin de dédoublonner, il faut privilégier UNION ALL
Comparez les perfs de not in() avec not exists()
Partager