Ik probeer 3 tabellen samen te voegen in een view; dit is de situatie:
Ik heb een tabel die informatie bevat van studenten die zich aanmelden om op deze College Campus te wonen. Ik heb een andere tabel die de hal voorkeuren (3 van hen) voor elke student opsomt. Maar elk van deze voorkeuren is slechts een ID-nummer, en het ID-nummer heeft een overeenkomstige halnaam in een derde tabel (ik heb deze database niet ontworpen...).
Vrijwel, ik heb INNER JOIN
op de tabel met hun voorkeuren, en hun informatie, het resultaat is iets als ...
John Doe | 923423 | Incoming Student | 005
Waar 005
de HallID
zou zijn. Dus nu wil ik die HallID
matchen aan een derde tabel, waar deze tabel een HallID
en HallName
bevat.
Dus eigenlijk wil ik dat mijn resultaat er zo uitziet als...
John Doe | 923423 | Incoming Student | Foley Hall <---(INSTEAD OF 005)
Dit is wat ik momenteel heb:
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
U kunt het volgende doen (ik gokte op tabelvelden, enz.)
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
Gebaseerd op je verzoek voor meerdere zalen zou je het op deze manier kunnen doen. Je join gewoon meerdere keren op je Hall tabel voor elke room 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
Als je 3 tabellen hebt met dezelfde ID
die samengevoegd moeten worden, dan denk ik dat het als volgt zou gaan:
SELECT * FROM table1 a
JOIN table2 b ON a.ID = b.ID
JOIN table3 c ON a.ID = c.ID
Vervang gewoon *
door wat je uit de tabellen wilt halen.