Heim >Datenbank >MySQL-Tutorial >Warum liefert mein SQL INNER JOIN mit mehreren Tabellen keine Ergebnisse?

Warum liefert mein SQL INNER JOIN mit mehreren Tabellen keine Ergebnisse?

Barbara Streisand
Barbara StreisandOriginal
2024-12-17 00:04:23228Durchsuche

Why Doesn't My SQL INNER JOIN With Multiple Tables Return Any Results?

Verknüpfen mehrerer Tabellen mit SQL Inner JOIN

Bei der Arbeit mit relationalen Datenbanken ist es oft notwendig, Daten aus mehreren Tabellen zu kombinieren. Zu diesem Zweck stellt SQL den INNER JOIN-Operator zur Verfügung.

Um einen Inner Join für zwei Tabellen durchzuführen, geben Sie die Gleichheitsbedingung zwischen ihren Primär- und Fremdschlüsseln an. Zum Beispiel:

SELECT *
FROM table1
INNER JOIN table2
ON table1.primaryKey = table2.table1Id;

Diese Abfrage gibt alle Zeilen aus beiden Tabellen zurück, die übereinstimmende Primär- und Fremdschlüssel haben.

Um dies auf mehrere Tabellen zu erweitern, fügen Sie einfach zusätzliche INNER JOIN-Klauseln hinzu Abfrage unter Verwendung derselben Fremd-/Primärschlüssel-Gleichheitsbedingung. Der folgende Code gibt jedoch keine Ergebnisse zurück:

SELECT *
FROM table1
INNER JOIN table2
INNER JOIN table3
ON table1.primaryKey = table2.table1Id = table3.table1Id;

Der Grund dafür ist, dass die Gleichheitsbedingung für jede Tabelle separat angegeben werden muss. Die korrekte Syntax lautet:

SELECT *
FROM table1
INNER JOIN table2
ON table1.primaryKey = table2.table1Id
INNER JOIN table3
ON table1.primaryKey = table3.table1Id;

Diese Abfrage gibt alle Zeilen aus Tabelle1 zurück, die übereinstimmende Primär- und Fremdschlüssel in Tabelle2 und Tabelle3 haben.

Das obige ist der detaillierte Inhalt vonWarum liefert mein SQL INNER JOIN mit mehreren Tabellen keine Ergebnisse?. 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