Partager via


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.

Voir aussi

Référence

Propriétés de la jointure

Autres ressources

Interrogation avec des jointures

Conception de requêtes et vues