Alors je t'explique le contexte.
C'est un "examen" sur papier.
Il y a des formules SQL et je dois dire si c'est bon ou mauvais.
Et la requête qui est proposée est
Code :
SELECT ColonneA, ColonneB FROM TABLE A Alias WHERE EXISTS(SELECT * FROM TABLE B WHERE ColonneB > 2)
|
Alors déjà je trouve bizarre que la tabvle A soit associée à un alias alors qu'il ne sert à rien.
Ensuite je trouve bizarre la colonne B liée à deux tables différentes.
Si on ne fait pas la jointure ça marche tout de même?
Le requêteur va juste regarder les valeurs de la colonneB (table B) sans se soucier du matching avec la table A?
EDIT : bon, je crois que j'ai compris. La sous requête n'est pas obligée d'avoir un rapport...C'est juste une condition pour savoir si la requête ramène quelque chose...
En gros : Select * from TABLE A where exist (select * from table B where colonne A >2) ça veut dire que si dans la table B, il y a au moins une ligne dans la colonne A > 2, alors la requête sortira quelque chose.
Ca ne veut pas dire que y aura un matching entre la table A et la table B.
J'ai bon?
Message édité par Sugoy le 03-03-2016 à 23:11:18