|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 13 ![]() |
Bonjour j'ai un petit soucis avec une requête
j'ai une table intervenant avec des identifiants itv_id et une table site_industriel qui a pour clé étrangère les itv_id de la table intervenant voilà j'essaie d'exécuter cette requete: Code :
select itv_id from intervenant where itv_id NOT IN(select itv_id from site_industriel) alors que séparément Code :
donc j'ai trouvé cette alternative: Code :
select itv_id from intervenant where itv_id in(select itv_id from site_industriel) et si j'execute cette requete Code :
select * from intervenant where itv_id not in(select itv_id from intervenant where itv_id in(select itv_id from site_industriel)) Code :
select itv_id from intervenant where itv_id NOT IN(select itv_id from site_industriel) alors est-ce que mes requêtes bleues sont fausses? je ne comprend pas pourquoi je suis obligée de faire un tel bricolage merci d'avance pour votre aide |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 638 ![]() |
Bonjour,
si vous avez fait exactement ce que vous avez dit, je penses qu'il y a un problème avec votre sgbd :p Sinon, en reprenant la 1ere requete, si vous mettez un alias dans la sous-requete est-ce que cela fonctionne ? |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 13 ![]() |
je viens de tester avec un alias ça ne marche pas non plus,
ce qui est bizarre c'est que j'ai une autre table interv_per qui est reliée à la table intervenant de la même façon que site_industriel est lié à intervenant (avec itv_id) et là la requête Code :
SELECT itv_id FROM intervenant WHERE itv_id NOT IN(SELECT itv_id FROM interv_per) j'utilise postgresql |
|
|
00
|
|
|
#4 | ||||
![]() ![]() |
C'est probablement à cause des nulls.
Essayez ceci : Code :
Code :
__________________
Email : http://scr.im/waldar |
||||
|
10
|
|
|
#5 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 13 ![]() |
ah oui!!! merci beaucoup
ça doit bien être ça à cause des valeurs nulles les deux requêtes fonctionnent merci beaucoup |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 950 ![]() |
Dès qu'il y a un NULL le NOT IN ne renvoie rien. Car NOT in (NULL) est toujours faux !
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
Copyright © 2000-2012 - www.developpez.com