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
Galite atlikti šiuos veiksmus (aš spėjau, kad lentelės laukai ir t. t.)
SELECT s.studentname
, s.studentid
, s.studentdesc
, h.hallname
FROM students s
INNER JOIN hallprefs hp
on s.studentid = hp.studentid
INNER JOIN halls h
on hp.hallid = h.hallid
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:
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
Jei turite 3 lenteles su tuo pačiu ID
, kurias reikia sujungti, manau, kad būtų taip:
SELECT * FROM table1 a
JOIN table2 b ON a.ID = b.ID
JOIN table3 c ON a.ID = c.ID
Tiesiog pakeiskite *
į tai, ką norite gauti iš lentelių.