2013-06-06 4 views
-1

J'ai une base de données comme celle-ci!TSQL Sélection à partir de plusieurs tables

étudiants:

StudentID  PK 
FirstName 
LastName 
... 

Cours:

CourseID PK 
SubjectID FK 
CourseName 
... 

StudentsCourses: (pour beaucoup à beaucoup)

StudentCourseID PK 
StudentID  FK 
CourseID  FK 

Sujets:

SubjectID PK 
SubjectName 
... 

StudentScores:

StudentScoreID PK 
StudentID FK 
ExamDate 
... 

Maintenant, je veux interroger comme ceci:

StudentID | FirstName | LastName | SubjectName | CourseName | ExamDate 

Pouvez-vous me aider?

+3

C'est un simple jointure. Essayez au moins quelques tutoriels de base avant de demander. Il semble que vous n'avez fait aucun effort du tout .. – sashkello

Répondre

0

Vous êtes probablement à la recherche d'une requête similaire à ci-dessous.

Ce que vous voulez faire est d'utiliser des jointures pour connecter deux tables dans votre base de données pour obtenir le résultat souhaité. Google TSQL join() pour plus d'informations

Essayez cette requête:

select a.StudentID, a.Firstname, a.Lastname, d.SubjectName, c.CourseName, e.ExamDate 
from Students a 
join StudentsCourses b on a.studentid = b.studentid 
join Courses c on b.courseid = c.courseid 
join Subjects d on c.subjectID = d.subjectID 
join StudentScores e on a.studentid = e.studentid 
+0

Merci pour votre réponse. J'ai essayé cette requête, mais elle ne renvoie aucune donnée. – Honar

+0

la raison en est que toutes les tables ne contiennent pas d'entrée pour cette requête. Vous pouvez essayer d'ajouter GAUCHE devant toutes les commandes JOIN – JanR

Questions connexes