我有3个表正在加入(内容应该无关紧要): 学生们 课程 StudentsCourses
我的查询:
SELECT *
FROM ((Students
INNER JOIN StudentsCourses ON Students.ID
StudentsCourses.studentID)
INNER JOIN Courses on StudentsCourses.courseID = Courses.ID)
ORDER BY Students.firstName
我的问题:
我在第一次加入时理解我正在将学生和学生课程结合起来。我不明白的是第二次加入加入的内容。这是学生和学生课程加入的结果吗?像(学生+学生课程)+课程。如果我没有明确指定要加入的表,第二个连接如何知道StudentsCourses.courseID是什么?
答案 0 :(得分:0)
你必须考虑SQL中的“集合”。在定义FROM子句时,您正在准备一个将由数据库引擎的优化器解释的语句。
你是什么意思“如果我没有明确指定要加入的表?”
到目前为止,在本声明中您只有2个选项,学生或学生课程,因为这些是在第二个JOIN之前定义的2个表。