Relationale Datenbanken erfordern oft die Verknüpfung von Tabellen, um Daten aus verschiedenen Quellen zu kombinieren. Während Fremdschlüssel diese Beziehungen normalerweise definieren, ist dies nicht immer der Fall. In dieser Anleitung wird erläutert, wie Sie Tabellen mithilfe einer dritten Zwischentabelle indirekt verbinden.
Stellen Sie sich drei Tabellen vor: Forests
, Species
und Trees
. Forests
speichert Waldnamen und Standorte; Species
listet Baumarten und Holzarten auf; und Trees
Einzelheiten zu einzelnen Bäumen, einschließlich ihrer Art und des Waldes, in dem sie leben.
Das Ziel besteht darin, Forests
und Species
basierend auf den Bäumen beizutreten, die sie gemeinsam haben. Es gibt jedoch keine direkte Fremdschlüsselverknüpfung zwischen Forests
und Species
. Stattdessen fungiert Trees
als Brücke und enthält Fremdschlüssel, die sowohl auf Forests
als auch auf Species
verweisen.
Die Lösung liegt darin, die Trees
-Tabelle als Zwischenglied zu verwenden. Indem wir Forests
und Species
durch Trees
verbinden, schaffen wir indirekt die gewünschte Beziehung.
Diese SQL-Abfrage demonstriert den indirekten Join:
<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>
Die Schritte dieser Abfrage:
INNER JOIN
verbindet Forests
und Trees
unter Verwendung übereinstimmender Waldnamen.INNER JOIN
Links Trees
und Species
über passende Artennamen.WHERE
filtert Ergebnisse nach Wäldern in der Region „ARTIC“.ORDER BY
sortiert die Ausgabe zur besseren Lesbarkeit.Diese Methode verbindet effektiv Tabellen ohne direkte Fremdschlüsselverbindungen, indem eine gemeinsam genutzte Tabelle als Brücke verwendet wird. Die Identifizierung der gemeinsamen Spalten, die die Tabellen verknüpfen, ist für die Herstellung dieser indirekten Beziehung von entscheidender Bedeutung und ermöglicht komplexe Verknüpfungsvorgänge auch ohne herkömmliche Fremdschlüsselbeschränkungen.
Das obige ist der detaillierte Inhalt vonWie kann ich Tabellen ohne Fremdschlüssel mithilfe einer Zwischentabelle verbinden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!