SORU
17 NİSAN 2012, Salı


İç birleşim 3 tablo ile SQL?

Bir görünümde 3 tabloyu birleştirmek için çalışıyorum; durum şu:

Bu Üniversite Kampüsünde yaşamak için başvuran öğrencilerin bilgilerini içeren bir tablo var. Her Öğrenci için Hall Tercihler (3) listeleyen bir tablo var. Ama bu tercihler her sadece KİMLİK Numarası ve KİMLİK Numarasını üçüncü bir tabloda karşılık gelen Hall bir Adı vardır (bu veritabanı tasarımı...) vermedi.

Hemen hemen, İÇ var kendi tercihleri ile masaya KATILMAK ve onların bilgi, sonuç gibi bir şey

 John Doe | 923423 | Incoming Student | 005

005 HallİD olacaktır. Şimdi bu tablo HallİD ve bir HallName bulunduğu üçüncü bir tablo, bu HallİD maç istiyorum.

Çok güzel çok, neden benim gibi olmak istiyorum

 John Doe | 923423 | Incoming Student | Foley Hall <---(INSTEAD OF 005)

EDİTben şu anda işte

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

Şimdiden teşekkürler.

CEVAP
17 NİSAN 2012, Salı


Aşağıdaki (tablo alanlar üzerinde tahmin etmiştim,vb) yapabilirsiniz

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

DÜZENLEME:

Birden çok salonlar için senin isteğine göre bu şekilde yapabilirsin. Sadece her odada tercih ıd için birden çok kez: Salon masasına katıl

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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • InfinityWard

    InfinityWard

    19 EYLÜL 2006
  • LearnCode.academy

    LearnCode.ac

    20 Aralık 2012
  • LinusTechTips

    LinusTechTip

    25 Kasım 2008