4. Obtenir des données à partir de plusieurs tables liées

On peut obtenir des données à partir de plusieurs tables à la fois en tirant profit des associations implémentées par les clés primaires et clé étrangères. C'est assez simple si on a bien fait attention à utiliser le même nom pour la clé étrangère que pour la clé primaire à laquelle elle se réfère.

Le mot-clé à utiliser est JOIN, qui permet de "faire comme si" les données se trouvaient dans une seule table, le temps d'une requête. Cependant, lorsque l'on se réfère à un champ, il faudra préciser de quelle table (vu que plusieurs tables peuvent avoir des champs synonymes). On peut aussi donner des "alias" aux champs pour le résultat de la requête.

Voici un exemple simple mais complet pour préciser la syntaxe:

SEL\(\!\)ECT Auteur.nom AS auteur, Livre.titre AS titre
    FROM Livre
    JOIN Auteur USING (id_auteur);

On recevra les résultats "comme si" ils se trouvaient dans une table dont les champs s'appellent auteur et titre, alors qu'en réalité ils proviennent de deux tables liées, Auteur et Livre. Comme on utilise la clé id_auteur pour lier les tables, les résultats seront générés à partir de la fusion d'une entrée de Livre et une entrée de Auteur ayant la même valeur pour la clé id_auteur.

On peut bien sûr continuer à utiliser toutes les options que l'on avait pour une requête à partir d'une seule table, et on peut aussi "joindre" plus que deux tables, par utilisations successives du mot-clé JOIN.