Heim >Datenbank >MySQL-Tutorial >Wie verbinde ich Tabellen ohne direkte Fremdschlüsselbeziehungen mithilfe einer Zwischentabelle?
Tabellen ohne direkte Fremdschlüssel verbinden: Eine Zwischentabelle nutzen
Das Verknüpfen von Tabellen ohne direkte Fremdschlüsselbeziehungen kann schwierig sein. Die Lösung? Eine Zwischentabelle, die Fremdschlüssel aus beiden Tabellen enthält.
Betrachten Sie drei Tabellen: Art, Wald und Baum. Die Tree
-Tabelle ist über Fremdschlüssel mit Species
und Forest
verknüpft, aber Species
und Forest
verweisen nicht direkt aufeinander.
Abfrage: Zusammenführen von Arten- und Walddaten
Um Waldnamen, Artennamen und Holzarten für Wälder in der Region „ARCTIC“ abzurufen, verwenden Sie diese SQL-Abfrage:
<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>
Aufschlüsselung der Abfrage
Diese Abfrage verknüpft die Tabellen effizient:
Forest
und Tree
mit Tree.Tr_forest
(dem Waldnamen in der Tree
-Tabelle) und Forest.Fo_name
(dem Waldnamen in der Forest
-Tabelle) verknüpft.Tree
und Species
mit Tree.Tr_species
(dem Artnamen in der Tree
-Tabelle) und Species.Sp_name
(dem Artnamen in der Species
-Tabelle) verknüpft.WHERE
-Klausel filtert die Ergebnisse, um nur Wälder anzuzeigen, die sich in „ARCTIC“ befinden.ORDER BY
werden die Ergebnisse nach Waldnamen und dann nach Artennamen sortiert.Diese Methode nutzt die Tree
-Tabelle effektiv als Brücke, um Species
und Forest
zu verbinden und so den Abruf der gewünschten Informationen zu ermöglichen.
Das obige ist der detaillierte Inhalt vonWie verbinde ich Tabellen ohne direkte Fremdschlüsselbeziehungen mithilfe einer Zwischentabelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!