Connexion de tables via une table de liaison : une approche SQL
Ce guide explique comment lier des tables de base de données dépourvues de relations de clé étrangère directes à l'aide d'une troisième table intermédiaire.
1. Comprendre les contraintes des clés étrangères
Les clés étrangères maintiennent l'intégrité des données en référençant les clés primaires dans d'autres tables. Bien qu'avantageux, ils ne sont pas strictement nécessaires pour rejoindre des tables.
2. Joindre des tables à l'aide d'une table intermédiaire
Lorsque deux tables n'ont pas de connexion directe par clé étrangère, une table intermédiaire contenant les clés étrangères des deux peut servir de pont. Nous allons illustrer cela en joignant une table Tree
avec une table Species
, en utilisant une clé étrangère Tr_species
, puis en liant Tree
à une table Forest
via une clé étrangère Tr_forest
.
3. Affiner les résultats avec le filtrage et le tri
Après avoir joint les tables, les clauses WHERE
et ORDER BY
permettent d'affiner les résultats. Ici, nous filtrerons par 'ARCTIC'
emplacement et trierons par nom de forêt et nom d'espèce :
<code>WHERE Fo_loc='ARCTIC' ORDER BY Fo_name, Sp_name</code>
Exemple de requête SQL
La requête SQL suivante illustre le processus complet :
<code class="language-sql">SELECT Forest.Fo_name, Species.Sp_name, Species.Sp_woodtype FROM Forest INNER JOIN Tree ON Forest.Fo_name = Tree.Tr_forest INNER JOIN Species ON Tree.Tr_species = Species.Sp_name WHERE Fo_loc='ARCTIC' ORDER BY Fo_name, Sp_name;</code>
Résumé
Cette technique montre comment une table intermédiaire permet de joindre des tables sans relations de clé étrangère directe. Cela met en évidence la polyvalence de SQL dans la gestion de structures de données complexes et démontre que les clés étrangères, bien qu'utiles, ne sont pas obligatoires pour les jointures de tables.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!