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' ) ;
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager