3 个表的 SQL 内连接? [英] SQL Inner-join with 3 tables?
问题描述
我正在尝试在一个视图中加入 3 个表;情况是这样的:
I'm trying to join 3 tables in a view; here is the situation:
我有一张表格,其中包含申请住在该大学校园的学生的信息.我有另一个表格,列出了每个学生的大厅首选项(其中 3 个).但是这些偏好中的每一个都只是一个ID号,而这个ID号在第三张表中有一个对应的Hall Name(这个数据库没有设计...).
I have a table that contains information of students who are applying to live on this College Campus. I have another table that lists the Hall Preferences (3 of them) for each Student. But each of these preferences are merely an ID Number, and the ID Number has a corresponding Hall Name in a third table (did not design this database...).
差不多,我在桌子上有INNER JOIN
,上面有他们的偏好和他们的信息,结果就像......
Pretty much, I have INNER JOIN
on the table with their preferences, and their information, the result is something like...
John Doe | 923423 | Incoming Student | 005
其中 005
将是 HallID
.所以现在我想将该 HallID
与第三个表相匹配,该表包含一个 HallID
和 HallName
.
Where 005
would be the HallID
. So Now I want to match that HallID
to a third table, where this table contains a HallID
and HallName
.
非常,我希望我的结果就像......
So pretty much, I want my result to be like...
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
推荐答案
您可以执行以下操作(我猜是表字段等)
You can do the following (I guessed on table fields,etc)
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
根据您对多个大厅的要求,您可以这样做.您只需为每个房间首选项多次加入您的 Hall 桌子:
Based on your request for multiple halls you could do it this way. You just join on your Hall table multiple times for each room 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
这篇关于3 个表的 SQL 内连接?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!