2011-05-07 11 views
7

SQL Server 2008:SQL Server 2008 - Cómo unirse a 3 mesas

Tengo 3 tablas

Users, Scores, Lessons 

Users & Scores están unidos por StudentID

Scores & Lessons están unidos por LessonID

Quiero mostrar las puntuaciones de StudentID. Aquí están las columnas que quiero mostrar

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

Sé cómo unirse a las 2 tablas. ¿Cómo tiro en la tercera mesa?

+0

Comprobar cómo [Recuperar datos de varias tablas con SQL se une] (http://databases.about.com/od/careers/l/aajoins1 .htm) -Desde About.com – mcha

Respuesta

15

misma manera que una misma mesa

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

Si agrega el prefijo 'dbo' a sus tablas (siempre recomendado) y comienza a usar alias de tabla para hacer que su consulta sea más legible, ¡esta sería la respuesta perfecta! –

+0

Claro, pero ninguna de esas cosas era la pregunta. –

+1

cierto. Pero Marc le ofreció algunos consejos para mejorarse a sí mismo y, al aumentar la calidad de sus respuestas, la persona que pregunta y todos los televidentes futuros también aprenderán más. – Konerak

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)