Colonnes dans les jointures

L'opérateur JOIN fait une comparaison entre les valeurs de deux tables pour trouver les lignes ayant une correspondance entre elles. C'est à vous de décider les colonnes à comparer dans les deux tables. Plusieurs choix sont possibles :

  • Colonnes en relation   Généralement, pour joindre des tables, il faut établir une correspondance entre des valeurs contenues dans des colonnes qui disposent d'une relation de clé étrangère. Par exemple, il est possible de demander une comparaison des valeurs de la colonne stor_id dans chacune des tables, pour réaliser une jointure entre les remises et les magasins. L'instruction SQL obtenue peut se présenter de la manière suivante :

    SELECT *
    FROM discounts INNER JOIN stores 
         ON stores.stor_id = discounts.stor_id
    

    Pour plus d'informations sur la jointure de tables par comparaison de colonnes en relation, consultez Jointure automatique de tables.

  • Colonnes sans relation   Pour joindre des tables, vous pouvez aussi établir une correspondance entre des valeurs contenues dans des colonnes ne disposant pas d'une relation de clé étrangère. Par exemple, il est possible de demander une comparaison des valeurs de la colonne State dans chacune des tables, pour réaliser une jointure entre les éditeurs et les auteurs résidant dans le même état. Dans l'ensemble des résultats obtenu par ce type de jointure, chaque ligne décrit une paire auteur-éditeur résidant dans le même état.

    SELECT au_lname, 
           au_fname, 
           pub_name, 
           authors.state
    FROM   authors INNER JOIN publishers 
                   ON authors.state 
                    = publishers.state
    

    Pour plus d'informations sur la jointure de tables par comparaison de colonnes sans relation, consultez Jointure manuelle de tables.

Notez également que plusieurs colonnes servent à établir une correspondance entre des lignes des tables jointes. Par exemple, pour trouver les paires auteur-éditeur résidant dans la même ville, il est possible de demander une jointure comparant les colonnes Département et Ville des deux tables. Il faut comparer deux colonnes, Département et Ville, pour éviter les correspondances entre villes de même nom mais ne se trouvant pas dans le même département (comme Fresnes, dans le département du Nord et Fresnes dans le département du Val de Marne).

Pour plus d'informations sur la jointure de tables par comparaison de plusieurs colonnes, consultez Jointure de tables sur plusieurs colonnes.

Voir aussi

Référence

Propriétés de la jointure

Autres ressources

Conception de requêtes et vues