SQL 3 tablo ile Inner-join?
Bir görünümde 3 tabloyu birleştirmeye çalışıyorum; durum şu:
Bu Kolej Kampüsünde yaşamak için başvuran öğrencilerin bilgilerini içeren bir tablom var. Her Öğrenci için Salon Tercihlerini (3 tane) listeleyen başka bir tablom var. Ancak bu tercihlerin her biri yalnızca bir Kimlik Numarasıdır ve Kimlik Numarasının üçüncü bir tabloda karşılık gelen bir Salon Adı vardır (bu veritabanını tasarlamadım...).
Aşağı yukarı, tercihleri ve bilgileri ile tabloda INNER JOIN
var, sonuç şöyle bir şey...
John Doe | 923423 | Incoming Student | 005
Burada 005
, HallID
olacaktır. Şimdi bu HallID
yi, bu tablonun HallID
ve HallName
içerdiği üçüncü bir tabloyla eşleştirmek istiyorum.
Yani hemen hemen, sonucumun şöyle olmasını istiyorum.
John Doe | 923423 | Incoming Student | Foley Hall <---(INSTEAD OF 005)
Şu anda elimde olanlar bunlar:
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
Aşağıdakileri yapabilirsiniz (tablo alanları vb. üzerinde tahmin yürüttüm)
Birden fazla salon talebinize dayanarak bu şekilde yapabilirsiniz. Her oda pref kimliği için Salon tablonuza birden çok kez katılmanız yeterlidir:
Birleştirilecek aynı
ID
ye sahip 3 tablonuz varsa, sanırım bu şekilde olacaktır:Sadece
*
yerine tablolardan ne elde etmek istiyorsanız onu yazın.Şu anda sahip olduğunuz
Kimlik Numarası
nı üçüncü tablonunKimlik Numarası
na bağlayan ikinci bir iç birleştirmeye ihtiyacınız var. Daha sonra,Kimlik Numarası
nıSalon Adı
ile değiştirin ve voilá :)