Maison > base de données > tutoriel mysql > Comment puis-je joindre des tables dépourvues de relations de clé étrangère directe à l'aide d'une troisième table ?

Comment puis-je joindre des tables dépourvues de relations de clé étrangère directe à l'aide d'une troisième table ?

Linda Hamilton
Libérer: 2025-01-15 18:21:48
original
117 Les gens l'ont consulté

How Can I Join Tables Lacking Direct Foreign Key Relationships Using a Third Table?

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal