2011-05-07 54 views
7

的SQL Server 2008:的SQL Server 2008 - 如何加入3个表

我有3个表

Users, Scores, Lessons 

Users & Scores通过StudentID

Scores & Lessons链接链接由LessonID

我想显示StudentID的分数。这里是我想要显示的列

Users.Name, Scores.LessonID, Scores.Result, Lessons.Title 

我知道如何加入2个表。我如何扔进第三张桌子?

+0

检查如何[多个表中检索数据和SQL连接(http://databases.about.com/od/careers/l/aajoins1 .htm) - 来自About.com – mcha 2011-05-07 10:14:30

回答

15

相同的方式,一个表:

SELECT Users.Name, Scores.LessonID, Scores.Result, Lessons.Title 
FROM Users 
INNER JOIN Scores ON Users.StudentID = Scores.StudentID 
INNER JOIN Lessons On Scores.LessonID = Lessons.LessonID 
+1

如果你在表中添加'dbo.'前缀(总是推荐),并开始使用表别名来提高你的查询的可读性 - 这将是一个完美的答案! – 2011-05-07 10:37:56

+0

当然,但这些都不是问题。 – 2011-05-07 10:57:55

+1

是真的。但是marc提供了一些改进自己的提示,通过提高答案的质量,提问者和所有未来的观众都可以学到更多。 – Konerak 2011-05-08 08:56:47

0
SELECT * 
FROM T1 
    INNER JOIN T2 
    ON T2.C = T1.C 
    INNER JOIN T3 
       LEFT JOIN T4 
       ON T4.C = T3.C 
    ON T3.C = T2.C 


is equivalent to (T1 Inner Join T2) Inner Join (T3 Left Join T4)