我想在一个视图中加入3个表;这是情况:
我有一张表格,其中包含申请在大学校园住宿的学生的信息 . 我有另一张 table ,列出了每个学生的霍尔偏好(其中3个) . 但是这些首选项中的每一个仅仅是ID号,并且ID号在第三表中具有相应的Hall Name(没有设计该数据库......) .
差不多,我在 table 上有他们的喜好和他们的信息INNER JOIN,结果是......
John Doe | 923423 | Incoming Student | 005
其中005是HallID . 所以现在我想将HallID与第三个表匹配,其中该表包含HallID和HallName .
所以,我希望我的结果像......
John Doe | 923423 | Incoming Student | Foley Hall <---(INSTEAD OF 005)
EDIT 这是我现在拥有的
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
11 回答
有很多回复,但总的教训似乎是你可以在where子句中使用多个JOINS;还有techonthenet.com(我的老板向我推荐,这就是我发现它的方式)如果你有另外一个问题并且你只想尝试解决它,那么它有很好的SQL教程 .
此查询将适合您
如果您有3个表加入相同的
ID
表,我认为它会是这样的:只需将
*
替换为您希望从表中获取的内容 .您可以执行以下操作(我猜对表字段等)
编辑:
根据您对多个大厅的要求,您可以这样做 . 您只需多次加入您的Hall table ,每个房间的首选项:
您只需要第二个内部联接,将您现在拥有的
ID Number
链接到第三个表的ID Number
. 之后,将ID Number
替换为Hall Name
和voilá:)这是对具有相同id的join 3表的正确查询**
员工第一桌 . 报告第二张表 . 出生第三表