Home >Database >Mysql Tutorial >How to Join Tables Lacking Direct Foreign Key Relationships Using an Intermediate Table?
Connecting Tables Without Direct Foreign Keys: Leveraging an Intermediate Table
Joining tables lacking direct foreign key relationships can be tricky. The solution? An intermediary table containing foreign keys from both tables.
Consider three tables: Species, Forest, and Tree. The Tree
table links to both Species
and Forest
via foreign keys, but Species
and Forest
don't directly reference each other.
Query: Joining Species and Forest Data
To retrieve forest names, species names, and wood types for forests in the 'ARCTIC' region, use this SQL query:
<code class="language-sql">SELECT Forest.Fo_name, Species.Sp_name, Species.Sp_woodtype FROM Forest INNER JOIN Tree ON Tree.Tr_forest = Forest.Fo_name INNER JOIN Species ON Tree.Tr_species = Species.Sp_name WHERE Forest.Fo_loc = 'ARCTIC' ORDER BY Forest.Fo_name, Species.Sp_name;</code>
Breakdown of the Query
This query efficiently joins the tables:
Forest
and Tree
using Tree.Tr_forest
(the forest name in the Tree
table) and Forest.Fo_name
(the forest name in the Forest
table).Tree
and Species
using Tree.Tr_species
(the species name in the Tree
table) and Species.Sp_name
(the species name in the Species
table).WHERE
clause filters the results to show only forests located in 'ARCTIC'.ORDER BY
sorts the results by forest name and then species name.This method effectively uses the Tree
table as a bridge to connect Species
and Forest
, enabling the retrieval of the desired information.
The above is the detailed content of How to Join Tables Lacking Direct Foreign Key Relationships Using an Intermediate Table?. For more information, please follow other related articles on the PHP Chinese website!