如何在SQL中合并来自多个表的数据

Nul*_*ead 3 sql sql-server join


猜猜我处境很复杂.继承人现场.
我在SQL Server中有3个表.
报名,学生,课程.(仅供参考,没有外键)
表格列为
Student - StudentId,StudentName
Course - CourseId,CourseName
Enrollment - EnrollmentId,StudentId,CourseId,CourseResult

样本数据
学生 - s1,Sid
课程 - c1,科学
入学 - 1,s1,c1,80

我想要一个SQL查询,选择如下所示的数据

1,s1,Sid,c1,Science,80

我通过多次调用数据库在DAL层中做得很好.但是想在一次通话中和在DB中这样做.

任何人都可以救援!

Ric*_*der 15

使用联接.

select enrollment.*, student.*, course.* from enrollment
   inner join Student on enrollment.studentId = student.studentId
   inner join Course on enrollment.courseId = course.courseId
Run Code Online (Sandbox Code Playgroud)


Pau*_*sik 6

实际上,数据模型中有外键.它们可能没有在数据库中标记为这样,或者您没有意识到它.我还认为,如果在您的列表中您将"注册"表放在"学生"和"课程"之间,则会更加清晰.注册是将学生与课程联系起来的表格.

我想你只想在三个表上进行内连接,如下所示:

SELECT e.EnrollmentId, s.StudentId, c.CourseId, c.CourseName, e.CourseResult
FROM Student AS s
JOIN Enrollment AS e ON s.StudentId = e.StudentId
JOIN Course AS c on e.CourseId = c.CourseId
Run Code Online (Sandbox Code Playgroud)