Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/02/2011, 17h23   #1
Invité de passage
 
Inscription : octobre 2009
Messages : 1
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 1
Points : 0
Points : 0
Par défaut Ces requêtes sont elles équivalentes?

"Bonjour"

requête1

Code :
1
2
 SELECT [BDB].ID FROM [BDB]  
 WHERE [BDB].ID IN (SELECT DS.ID FROM DS WHERE DS.[MS]=YES)  AND  [BDB].[TB]="B3";
Requête2
Code :
1
2
SELECT [DS].ID FROM DS 
 WHERE DONATION_SANTE.ID  IN (SELECT [BDB].ID FROM [BDB] WHERE [BDB].[TB]="B3")  AND  DS.[MS]=YES;
"Merci"
Dorlus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2011, 06h54   #2
Membre Expert
 
Inscription : août 2006
Messages : 1 435
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 435
Points : 1 753
Points : 1 753
Bonjour,
La réponse est oui car les 2 retournent des enregistrements sur un champ commun avec les mêmes critères
helas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2011, 11h57   #3
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonjour Dorlus et Helas,

Si j'ai bien compris, je me permet de nuancer la réponse de Helas.

En fait, il s'agit d'exposer l'importance de la table "primaire" : celle apparaissant en premier dans la liste FROM. En gros, SQL lit la table "primaire" et, ensuite, effectue les tests demandés.

Dans ton cas :
  • la première requête lit la table BDB et regarde, pour tous les enregistrements de la table BDB, si [BDB].ID existe dans la table DS avec les tests indiqués ;
  • la seconde requête lit la table DS et regarde, pour tous les enregistrements de la table DS, si DONATION_SANTE.ID existe dans la table BDB avec les tests indiqués.

Il s'agit donc de tester trois choses, dans ton cas :
  1. présence BDB, présence DS ;
  2. présence BDB, absence DS ;
  3. présence DS, absence BDB.

Si j'ai bien tout compris... vite fait.

J'ajoute, que la jonction entre deux tables est plus performante qu'une requête imbriquée. Passer par l'assistant, c'est plus facile.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h25.


 
 
 
 
Partenaires

Hébergement Web