Heim >Datenbank >MySQL-Tutorial >Warum liefert mein SQL INNER JOIN mit mehreren Tabellen keine Ergebnisse?
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!