|
|
Les requêtes multi-tables et jointures:
Définition d'une jointure : elle permet de définir une relation entre plusieurs tables en leur attribuant un champ commun. Il s'agit donc de dire qu'une colonne d'une table contient les mêmes informations qu'une colonne d'une autre table.
Ces jointures peuvent être directement définies sous Access, mais il est conseillé de les programmer en SQL.
Elles vont être créées juste le temps de l'exécution de la requête.
Prenons 2 tables Access : TableActeurs et TableTournages
| TableActeurs | acteur * | filmographie | nationalite | recompenses | age | genre |
* = clé primaire
| TableTournages | film * | producteur | acteur | duree | realisateur | budget |
PLUSIEURS REQUETES POSSIBLES ENTRE CES 2 TABLES
Ces deux tables doivent avoir un champ commun (ici, le champ "acteur").
Cela s'écrit : TableActeurs.acteur=TableTournages.acteur
SELECT film, acteur, nationalite FROM TableActeurs, TableTournages WHERE TableActeurs.acteur=TableTournages.acteur GROUP BY film ;
! Par film, la liste des acteurs et leur nationalité !
SELECT MAX(age), acteur, film FROM TableActeurs, TableTournages WHERE TableActeurs.acteur=TableTournages.acteur
! Retrouve le ou les films dans lesquels a joué l'acteur le plus âgé !
SELECT DISTINCT producteur, acteur, genre, nationalite FROM TableActeurs, TableTournages WHERE TableActeurs.acteur=TableTournages.acteur AND genre='comique' AND nationalite ='français' ;
! Retrouve tous les producteurs d'acteurs comiques français !