Heim >Datenbank >MySQL-Tutorial >Wie kann man drei Tabellen in SQL effizient mit INNER JOIN verknüpfen, um Studenteninformationen und Hallennamen abzurufen?
SQL: Kombinieren von Daten aus mehreren Tabellen mit INNER JOIN
SQLs INNER JOIN
ist ein leistungsstarkes Tool zum Kombinieren von Informationen aus verschiedenen Tabellen basierend auf gemeinsamen Werten. Dies ist besonders nützlich, wenn es um verwandte Datensätze geht, wie in diesem Beispiel mit Studenteninformationen, Hallenpräferenzen und Hallennamen gezeigt.
Stellen Sie sich drei Tabellen vor: eine mit Studentendetails, eine andere mit Wohnheimpräferenzen (dargestellt als IDs) und eine dritte mit Wohnheimnamen, die diesen IDs entsprechen. Um Studenteninformationen neben den tatsächlichen Hallennamen anzuzeigen, verwenden wir INNER JOIN
.
So können Sie diese drei Tabellen effizient INNER JOIN
erstellen:
<code class="language-sql">SELECT s.StudentID, s.FName, s.LName, s.Gender, s.BirthDate, s.Email, r.HallPref1, r.HallPref2, r.HallPref3, h.HallName FROM dbo.StudentSignUp AS s INNER JOIN RoomSignUp.dbo.Incoming_Applications_Current AS r ON s.StudentID = r.StudentID INNER JOIN HallData.dbo.Halls AS h ON r.HallPref1 = h.HallID;</code>
Diese Abfrage funktioniert wie folgt:
INNER JOIN
verbindet StudentSignUp
und Incoming_Applications_Current
unter Verwendung von StudentID
als gemeinsamem Schlüssel.INNER JOIN
verknüpft Incoming_Applications_Current
und Halls
unter Verwendung von HallPref1
(aus der Präferenztabelle) und HallID
(aus der Hallentabelle).Das Ergebnis zeigt Studenteninformationen zusammen mit ihrer ersten Wohnheimpräferenz und dem entsprechenden Namen an, zum Beispiel:
<code>John Doe | 923423 | Incoming Student | Foley Hall</code>
Erweitern der Abfrage für mehrere Hallenpräferenzen:
Um alle drei Hallenpräferenzen und ihre Namen abzurufen, können wir die Abfrage um zusätzliche INNER JOIN
s:
<code class="language-sql">SELECT s.StudentID, s.FName, s.LName, s.Gender, s.BirthDate, s.Email, r.HallPref1, h1.HallName AS Pref1HallName, r.HallPref2, h2.HallName AS Pref2HallName, r.HallPref3, h3.HallName AS Pref3HallName FROM dbo.StudentSignUp AS s INNER JOIN RoomSignUp.dbo.Incoming_Applications_Current AS r ON s.StudentID = r.StudentID INNER JOIN HallData.dbo.Halls AS h1 ON r.HallPref1 = h1.HallID INNER JOIN HallData.dbo.Halls AS h2 ON r.HallPref2 = h2.HallID INNER JOIN HallData.dbo.Halls AS h3 ON r.HallPref3 = h3.HallID;</code>
Diese erweiterte Abfrage verknüpft die Halls
-Tabelle dreimal, einmal für jede Präferenzspalte, und bietet eine vollständige Ansicht der Studentenwohnheimpräferenzen und der zugehörigen Namen.
Das obige ist der detaillierte Inhalt vonWie kann man drei Tabellen in SQL effizient mit INNER JOIN verknüpfen, um Studenteninformationen und Hallennamen abzurufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!