在没有直接外键的情况下连接表:利用中间表
连接缺乏直接外键关系的表可能会很棘手。 解决方案是什么?包含两个表中的外键的中间表。
考虑三个表:物种、森林和树木。 Tree
表通过外键链接到 Species
和 Forest
,但 Species
和 Forest
不直接相互引用。
查询:连接物种和森林数据
要检索“北极”地区森林的森林名称、物种名称和木材类型,请使用以下 SQL 查询:
<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>
查询细分
此查询有效地连接表:
Forest
(Tree
表中的森林名称)和 Tree.Tr_forest
(Tree
表中的森林名称)连接 Forest.Fo_name
和 Forest
。Tree
(Species
表中的物种名称)和 Tree.Tr_species
(Tree
表中的物种名称)连接 Species.Sp_name
和 Species
。WHERE
子句过滤结果以仅显示位于“ARCTIC”的森林。ORDER BY
按森林名称和物种名称对结果进行排序。该方法有效地使用Tree
表作为连接Species
和Forest
的桥梁,从而能够检索所需的信息。
以上是如何使用中间表连接缺乏直接外键关系的表?的详细内容。更多信息请关注PHP中文网其他相关文章!