Heim >Datenbank >MySQL-Tutorial >Wie verbinde ich Tabellen ohne direkte Fremdschlüsselbeziehungen mithilfe einer Zwischentabelle?

Wie verbinde ich Tabellen ohne direkte Fremdschlüsselbeziehungen mithilfe einer Zwischentabelle?

Barbara Streisand
Barbara StreisandOriginal
2025-01-15 18:27:16684Durchsuche

How to Join Tables Lacking Direct Foreign Key Relationships Using an Intermediate Table?

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:

  1. Zunächst werden 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.
  2. Dann werden 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.
  3. Die WHERE-Klausel filtert die Ergebnisse, um nur Wälder anzuzeigen, die sich in „ARCTIC“ befinden.
  4. Abschließend 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn