Thibault Liétard.

Instructor and Private Teacher

Bases de Données

Sous-Requêtes

Le fait de faire une sous-requête désigne l'action d'utiliser le résultat d'une requête comme table dans une autre requête.

En effet, une fois qu'elle est exécuté, une requête produit une table. Il est donc tout à fait possible d'utiliser ce résultat comme table dans une seconde requête.

Prenons un exemple : supposons que l'on veuille afficher la liste des clients qui n'habitent pas Lille et dont le nom ne commence pas par un 'L'. On peut effectuer cette action en deux requête :

  1. Une première requête qui produira la table des client n'habitant pas Lille
  2. Une seconde requête qui cherchera dans cette nouvelle table ceux dont le nom ne commence pas par un 'L'
La première requête est donc la suivante :

Ensuite, on enregistre cette requête comme "Requête1". Quand on crée la requête 2, sous l'onglet requête, on peut choisir la "Requête1" comme table sur laquelle exécuter notre requête 2.

Il ne reste plus qu'à mettre en forme la requête 2 pour qu'elle n'affiche que les clients dont le nom ne commence pas par un 'L'.

On peut également utiliser les résultats d'une requête comme valeurs dans les champs critères d'une autre requête. Par exemple, si on souhaite afficher tous les clients qui ont commandé autant d'un produit que la quantité maximum qui ait été commandée, on commencera par faire une requête calculant la quantité maximum commandé :

On utilisera ensuite le résultat de cette requête dans la requête finale de la manière suivante :

On peut également créer une jointure entre une requête est une autre table. Par exemple, si on veut connaître la liste des clients habitants dans la même ville que le client "Alavie", on commencera par faire une requête pour savoir dans quelle ville celui-ci habite :

On pourra ensuite inclure cette requête dans la requête finale, en faisant une jointure manuelle entre le champs "Ville" de la table "Ville" et le champs "Ville" de la table "Requête1". Cela signifique qu'on attends que deux champs soit identiques. Pour faire une jointure manuelle, il suffit de cliquer sur l'un des champs et de glisser le clic jusqu'à l'autre.