2011-05-07 52 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)