ビューで 3 つのテーブルを結合しようとしています。状況は次のとおりです。
この大学のキャンパスに住むことを申請している学生の情報を含むテーブルがあります。また、各学生の寮の希望 (3 つ) をリストした別のテーブルもあります。ただし、これらの希望はそれぞれ ID 番号にすぎず、ID 番号には 3 番目のテーブルに対応する寮名があります (このデータベースは設計していません...)。
INNER JOIN
彼らの好みや情報をテーブルに載せると、結果はだいたいこんな感じになります...
John Doe | 923423 | Incoming Student | 005
はどこに005
ありますか。そこで今度は、これを と が含まれる 3 番目のテーブルとHallID
一致させます。HallID
HallID
HallName
つまり、私の結果はこんな感じになりたいと思っています...
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