Bonjour
Ai je le droit d'ecrire une requete comme ceci
Code:
1
2 select * from Table1 where table1.champs1 =(select champs2 from table2.champs2 where table2.champs3='T')
Version imprimable
Bonjour
Ai je le droit d'ecrire une requete comme ceci
Code:
1
2 select * from Table1 where table1.champs1 =(select champs2 from table2.champs2 where table2.champs3='T')
Comme cela, ça aura plus de chances de fonctionner :
Code:
1
2
3
4
5
6
7
8 SELECT * FROM table1 WHERE table1.champs1 IN ( SELECT table2.champs2 FROM table2 WHERE table2.champs3 = 'T' ) ;
Oui tu as parfaitement le droit, mais à vérifier le nombre de lignes que te renvoie ta sous requête pour savoir si tu mets un = ou un "in"
Oui le IN dans le cas présent est toujours préférable sauf si on a la certitude de n'avoir qu'une seule occurrence retournée par la sous-requête. Mais bon ! L'informatique est pleine de surprise et un jour on tombe forcément sur un cas particulier qui retourne plusieurs éléments. D'où l'intérêt de l'opérateur IN.
L'utilisation d'une jointure serait beaucoup plus appropriée je pense.
Bon courage