SQL Inner-Join mit 3 Tabellen?
I'm versuchen, 3 Tabellen in einer Ansicht zu verbinden; hier ist die Situation:
Ich habe eine Tabelle, die Informationen über Studenten enthält, die sich für einen Wohnheimplatz an diesem College Campus bewerben. Ich habe eine weitere Tabelle, die die Wohnheimpräferenzen (3 Stück) für jeden Studenten auflistet. Aber jede dieser Präferenzen ist nur eine ID-Nummer, und die ID-Nummer hat einen entsprechenden Hallennamen in einer dritten Tabelle (ich habe diese Datenbank nicht entworfen...).
Ziemlich genau, ich habe INNER JOIN
auf der Tabelle mit ihren Präferenzen, und ihre Informationen, das Ergebnis ist etwas wie...
John Doe | 923423 | Incoming Student | 005
Wobei 005
die HallID
wäre. Nun möchte ich diese "HallID" mit einer dritten Tabelle abgleichen, wobei diese Tabelle eine "HallID" und einen "Hallennamen" enthält.
Ich möchte also, dass mein Ergebnis ungefähr so aussieht...
John Doe | 923423 | Incoming Student | Foley Hall <---(INSTEAD OF 005)
Hier ist, was ich derzeit habe:
SELECT
s.StudentID, s.FName,
s.LName, s.Gender, s.BirthDate, s.Email,
r.HallPref1, r.HallPref2, r.HallPref3
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
Sie können Folgendes tun (ich habe auf Tabellenfelder etc. getippt)
Basierend auf Ihrer Anfrage nach mehreren Hallen könnten Sie es so machen. Verknüpfen Sie einfach Ihre Tabelle "Hall" mehrmals für jede Raumvorgaben-ID:
Wenn Sie 3 Tabellen mit der gleichen "ID" haben, die verbunden werden sollen, würde es folgendermaßen aussehen:
Ersetzen Sie einfach
*
mit dem, was Sie aus den Tabellen erhalten möchten.Sie brauchen nur eine zweite innere Verknüpfung, die die "ID-Nummer", die Sie jetzt haben, mit der "ID-Nummer" der dritten Tabelle verbindet. Anschließend ersetzen Sie die "ID-Nummer" durch den "Hallennamen" und voilà :)