Daugiau
SQL vidinis sujungimas su 3 lentelėmis?
Bandau sujungti 3 lenteles į rodinį; štai tokia situacija:
Turiu lentelę, kurioje pateikiama informacija apie studentus, kurie kreipiasi dėl gyvenimo koledžo miestelyje. Turiu kitą lentelę, kurioje išvardyti kiekvieno studento pageidavimai dėl salės (3 iš jų). Tačiau kiekvienas iš šių pageidavimų yra tik ID numeris, o ID numeris turi atitinkamą salės pavadinimą trečioje lentelėje (šios duomenų bazės neplanavau...).
Daugmaž, aš turiu INNER JOIN
ant lentelės su jų pageidavimais ir jų informacija, rezultatas yra kažkas panašaus į...
John Doe | 923423 | Incoming Student | 005
Kur 005
būtų HallID
. Taigi dabar noriu tą HallID
priderinti prie trečios lentelės, kurioje yra HallID
ir HallName
.
Taigi iš esmės noriu, kad mano rezultatas būtų toks...
John Doe | 923423 | Incoming Student | Foley Hall <---(INSTEAD OF 005)
Štai ką šiuo metu turiu:
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
Galite atlikti šiuos veiksmus (aš spėjau, kad lentelės laukai ir t. t.)
Remdamiesi jūsų užklausa dėl kelių salių, galite tai padaryti taip. Tiesiog prisijungsite prie savo Hall lentelės kelis kartus kiekvienam salės pref id:
Jei turite 3 lenteles su tuo pačiu
ID
, kurias reikia sujungti, manau, kad būtų taip:Tiesiog pakeiskite
*
į tai, ką norite gauti iš lentelių.Jums reikia tik antrojo vidinio sujungimo, kuris susietų dabar turimą
ID numerį
su trečiosios lentelėsID numeriu
. Vėliau pakeiskiteID numerį
įHall Name
ir voilá :)