Tables dans les jointures
Mise à jour : novembre 2007
Lorsque vous combinez des données de plusieurs tables, vous devez choisir les tables à utiliser. Il y a plusieurs considérations à prendre en compte :
Combinaison de trois tables ou plus Chaque opérateur JOIN combine deux tables. Cependant, vous pouvez utiliser plusieurs opérateurs JOIN dans la même requête pour réunir des données de plusieurs tables. Comme chaque opération JOIN donne une table, ce résultat peut être utilisé en tant qu'opérande dans une opération de jointure suivante. Par exemple, pour créer un ensemble de résultats dans lequel chaque ligne contient un titre de livre, un auteur et les droits d'auteur exprimés en pourcentage, combinez les données de trois tables : authors, titles et titleauthor. L'instruction SQL obtenue peut se présenter de la manière suivante :
SELECT title, au_fname, au_lname, royaltyper FROM authors INNER JOIN titleauthor ON authors.au_id = titleauthor.au_id INNER JOIN titles ON titleauthor.title_id = titles.title_id
Utilisation d'une table ne servant qu'à joindre les autres Aucune colonne de cette table n'apparaîtra dans un ensemble de résultats, mais la table est utilisée pour effectuer la jointure. Par exemple, pour établir un ensemble de résultats dans lequel chaque ligne décrit une paire titre-magasin lorsque le magasin vend ce titre, il faut inclure des colonnes de deux tables : titles et stores. Mais il faut également faire intervenir une troisième table, sales, pour déterminer quels magasins ont vendu quels titres. L'instruction SQL obtenue peut se présenter de la manière suivante :
SELECT title, stor_name FROM titles INNER JOIN sales ON titles.title_id = sales.title_id INNER JOIN stores ON sales.stor_id = stores.stor_id
Dans ce cas, aucune colonne de la table sales ne contribue à l'ensemble des résultats.
Utilisation d'une table deux fois dans la même requête Il est possible d'utiliser une table deux fois ou plus dans la même requête. Pour plus d'informations, consultez Utilisation d'une table deux fois dans la même requête.
Utilisation d'un autre élément qu'une table Au lieu d'une table, vous pouvez utiliser une requête, une vue ou une fonction définie par l'utilisateur retournant une table. Pour plus d'informations, consultez Comment : créer des requêtes qui utilisent autre chose qu'une table.
Pour plus d'informations sur l'ajout de tables dans une requête, consultez Comment : ajouter des tables à des requêtes.