Bonjour
Ai je le droit d'ecrire une requete comme ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select * from Table1 where table1.champs1 =(select champs2 from table2.champs2 where table2.champs3='T')
Bonjour
Ai je le droit d'ecrire une requete comme ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT * FROM table1 WHERE table1.champs1 IN ( SELECT table2.champs2 FROM table2 WHERE table2.champs3 = 'T' ) ;
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous,
N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton
et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.
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
Partager