SQL Inner-join 3 táblával?
I'm megpróbálom összekapcsolni 3 táblázatot egy nézetben; itt a helyzet:
Van egy táblázatom, amely a főiskolai kampuszra jelentkező hallgatók adatait tartalmazza: Van egy táblázatom, amely a főiskolai kampuszra jelentkező hallgatók adatait tartalmazza. Van egy másik táblázatom, amely az egyes hallgatók csarnokpreferenciáit (3 darabot) sorolja fel. De ezek a preferenciák mindegyike csupán egy azonosítószám, és az azonosítószámnak van egy megfelelő csarnoknév egy harmadik táblázatban (nem terveztem ezt az adatbázist...).
Nagyjából, van INNER JOIN
a preferenciáikat tartalmazó táblán, és az információik, az eredmény valami ilyesmi...
John Doe | 923423 | Incoming Student | 005
Ahol a 005
a HallID
lenne. Tehát most ezt a HallID
-t egy harmadik táblához akarom rendelni, ahol ez a tábla tartalmazza a HallID
-t és a HallName
-t.
Tehát nagyjából azt akarom, hogy az eredményem olyan legyen, mint...
John Doe | 923423 | Incoming Student | Foley Hall <---(INSTEAD OF 005)
Itt van, ami jelenleg van:
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
A következőket teheti meg (a táblázat mezőire tippeltem, stb.)
A több teremre vonatkozó kérésed alapján így is megteheted. Csak többször csatlakozol a csarnok tábládhoz minden egyes szoba pref id-hez:
Ha 3 azonos azonosítóval rendelkező tábla van, amelyeket össze kell kapcsolni, akkor szerintem ez így néz ki:
Csak helyettesítsd a
*
-t azzal, amit a táblákból szeretnél kapni.Csak egy második belső csatlakozásra van szükséged, amely összekapcsolja a mostani "azonosítószámot" a harmadik tábla "azonosítószámával". Ezután cseréld ki az
ID Number
-t aHall Name
-re és voilá :)