首頁 >資料庫 >mysql教程 >如何使用中間表連接沒有外鍵的表?

如何使用中間表連接沒有外鍵的表?

Susan Sarandon
Susan Sarandon原創
2025-01-15 18:10:43862瀏覽

How Can I Join Tables Without Foreign Keys Using an Intermediary Table?

連接沒有直接外鍵關係的表:實用指南

關聯式資料庫通常需要連接表來組合來自不同來源的資料。 雖然外鍵通常定義這些關係,但情況並非總是如此。 本指南說明如何使用第三個中間表間接連接表。

挑戰

想像三個表:ForestsSpeciesTreesForests 儲存森林名稱和位置; Species列出了樹種和木材類型; Trees 詳細介紹了每棵樹,包括它們的種類和它們棲息的森林。

目標是根據 ForestsSpecies 共享的樹將它們連接起來。 但是,ForestsSpecies 之間沒有直接的外鍵連結。 相反,Trees 充當橋樑,包含引用 ForestsSpecies 的外鍵。

解:透過中介間接加入

解決方案在於使用Trees表作為中介連結。 透過Forests連接SpeciesTrees,我們間接創建了所需的關係。

SQL 查詢範例

此 SQL 查詢示範了間接連線:

<code class="language-sql">SELECT Forests.Fo_name, Species.Sp_name, Species.Sp_woodtype
FROM Forests
INNER JOIN Trees ON Forests.Fo_name = Trees.Tr_forest
INNER JOIN Species ON Trees.Tr_species = Species.Sp_name
WHERE Forests.Fo_loc = 'ARTIC'
ORDER BY Forests.Fo_name, Species.Sp_name;</code>

此查詢的步驟:

  • INNER JOIN 使用符合的森林名稱連接 ForestsTrees
  • 另一個INNER JOIN透過匹配物種名稱連結TreesSpecies
  • WHERE 將結果過濾到「北極」地區的森林。
  • ORDER BY 對輸出進行排序以提高可讀性。

總結

此方法透過使用共享表作為橋樑,有效地連接沒有直接外鍵連接的表。 識別連結表的公共列對於建立這種間接關係至關重要,即使沒有傳統的外鍵約束,也可以實現複雜的聯接操作。

以上是如何使用中間表連接沒有外鍵的表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn