3つのテーブルでSQL内部結合?質問する

3つのテーブルでSQL内部結合?質問する

ビューで 3 つのテーブルを結合しようとしています。状況は次のとおりです。

この大学のキャンパスに住むことを申請している学生の情報を含むテーブルがあります。また、各学生の寮の希望 (3 つ) をリストした別のテーブルもあります。ただし、これらの希望はそれぞれ ID 番号にすぎず、ID 番号には 3 番目のテーブルに対応する寮名があります (このデータベースは設計していません...)。

INNER JOIN彼らの好みや情報をテーブルに載せると、結果はだいたいこんな感じになります...

 John Doe | 923423 | Incoming Student | 005

はどこに005ありますか。そこで今度は、これを と が含まれる 3 番目のテーブルとHallID一致させます。HallIDHallIDHallName

つまり、私の結果はこんな感じになりたいと思っています...

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

現在私が持っているものは次のとおりです:

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

ベストアンサー1

次の操作を実行できます (テーブル フィールドなどを推測しました)

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

複数のホールのリクエストに基づいて、次のように実行できます。各部屋の 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

おすすめ記事