Próbuję połączyć 3 tabele w widoku; oto sytuacja:
Mam tabelę, która zawiera informacje o studentach, którzy ubiegają się o mieszkanie na tym kampusie. Mam inną tabelę z Preferencjami Hall (3 z nich) dla każdego Ucznia. Ale każda z tych preferencji jest jedynie numerem identyfikacyjnym, a numer identyfikacyjny ma odpowiednią nazwę hali w trzeciej tabeli (nie zaprojektowałem tej bazy danych ...).
W zasadzie mam INNER JOIN
na stole ich preferencje, a ich informacje, wynik jest podobny do ...
John Doe | 923423 | Incoming Student | 005
Gdzie 005
będzie HallID
. Więc teraz chcę dopasować to HallID
do trzeciego stołu, w którym ten stół zawiera a HallID
i HallName
.
Tak bardzo, chcę, aby mój wynik był jak ...
John Doe | 923423 | Incoming Student | Foley Hall <---(INSTEAD OF 005)
Oto, co obecnie mam:
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
źródło
źródło
Jeśli masz 3 tabele z tymi samymi
ID
do połączenia, myślę, że byłoby tak:Po prostu zamień na
*
to, co chcesz uzyskać ze stolików.źródło
źródło
Potrzebujesz tylko drugiego połączenia wewnętrznego, które łączy
ID Number
już posiadaneID Number
z trzecim stołem. Następnie zastąpID Number
przezHall Name
i voilá :)źródło
źródło
Odpowiedzi było wiele, ale ogólna lekcja wydaje się polegać na tym, że można użyć wielu JOINS w klauzuli where; także techonthenet.com (mój szef mi to polecił, tak to znalazłem) ma dobre tutoriale SQL, jeśli kiedykolwiek będziesz mieć inne pytanie i po prostu chcesz je rozwiązać.
źródło
To jest poprawne zapytanie o tabelę Join 3 o tym samym identyfikatorze **
pierwszy stół pracownika. zgłoś drugą tabelę. poród trzeci stół
źródło
źródło
To zapytanie zadziała dla Ciebie
źródło
źródło
źródło