SQL Inner-join med 3 tabeller?
Jeg forsøger at sammenføje 3 tabeller i en visning; her er situationen:
Jeg har en tabel, der indeholder oplysninger om studerende, der ansøger om at bo på dette College Campus. Jeg har en anden tabel, der viser Hall Preferences (3 af dem) for hver studerende. Men hver af disse præferencer er blot et ID-nummer, og ID-nummeret har et tilsvarende hallnavn i en tredje tabel (har ikke designet denne database...).
Jeg har stort set INNER JOIN
på tabellen med deres præferencer, og deres oplysninger, resultatet er noget i stil med...
John Doe | 923423 | Incoming Student | 005
Hvor 005
ville være HallID
. Så nu vil jeg matche dette HallID
med en tredje tabel, hvor denne tabel indeholder et HallID
og HallName
.
Så jeg ønsker, at mit resultat skal se ud som...
John Doe | 923423 | Incoming Student | Foley Hall <---(INSTEAD OF 005)
Her er hvad jeg har i øjeblikket:
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
307
3
Du kan gøre følgende (jeg gættede på tabelfelter osv.)
Baseret på din anmodning om flere haller kunne du gøre det på denne måde. Du skal bare deltage på din Hall tabel flere gange for hvert rum pref id:
Hvis du har 3 tabeller med samme
ID
, der skal sammenføjes, tror jeg, at det vil være sådan her:Du skal blot erstatte
*
med det, du vil have fra tabellerne.Du skal bare have et andet indre led, der forbinder det
ID-nummer
, du har nu, medID-nummer
i den tredje tabel. Herefter erstatter duID Number
medHall Name
og voilá :)