我可以编写哪个SQL查询来满足这个需求:
"列出从名为John的教练那里学习课程的学生的姓名。"
答案 0 :(得分:1)
从所描述的关系中不确定是否可以。
您可以通过选择 InstructorID 并过滤Instructor.FirstName来识别导师。
您可以通过讲师课程加入表加入讲师ID ,然后将结果加入课程 <强> CourseID 强>
通过这种方式, Instructor.InstructorID - &gt; (InstructorCourses.InstructorID,InstructorCourses.CourseID) - &gt; Courses.CourseID
这使您可以找到有关教师按其姓名过滤所教课程的信息。
您不会在图表中显示学生和课程之间的任何链接。我怀疑你错过了 StudentCourses 的关系,它应该与 InstructorCourses 相似,而是将学生与课程联系起来。通过混合中的数据,您可以扩展联接以使学生与您已有的关系中的课程相匹配。
您的图表暗示了学生和讲师课程之间的关系,这似乎是不正确的 - 因为没有要加入的键,也因为逻辑关系不是正确。我认为这可能是一个错误。
答案 1 :(得分:0)
不可能满足您需要的SQL查询,因为您的概念不允许,因为2个表Student
和InstructorCourses
之间没有任何关系。