多ID指向场景下Student、Course、Teacher三表关联查询求助
多表关联查询解决方案
关联逻辑明确
- Student与Course的关联:使用
Student.course_Id = Course.course_Id。Student表的course_Id是学生所选课程的ID,对应Course表的主键course_Id;Course表中的std_Id属于冗余字段,不适合用来关联所有学生的选课记录。 - Student与Teacher的关联:使用
Student.teacher_Id = Teacher.teacher_Id。Student表的teacher_Id存储的是该学生对应课程的授课教师ID,对应Teacher表的主键teacher_Id;Course表的teacher_Id仅代表该课程的某个授课教师,并非学生所选课程的专属教师,因此不采用。
最终查询语句
SELECT s.std_Name, c.course_Name, t.teacher_Name FROM Student s INNER JOIN Course c ON s.course_Id = c.course_Id INNER JOIN Teacher t ON s.teacher_Id = t.teacher_Id;
语句说明
使用INNER JOIN可以过滤掉没有对应课程或没有对应教师的学生记录,完全匹配你“查询已选课程且对应有教师的学生信息”的需求,同时清晰展示指定的三个字段。
内容的提问来源于stack exchange,提问作者Sudarshan Patil
相关产品推荐
相关产品推荐

