查询课程1001学生紧急联系人信息的SQL语句问题求助
解决课程1001学生紧急联系人的SQL查询问题
嘿,我发现你当前的SQL语句有个关键问题:NextOfKin表本身并没有courseNo字段,直接在WHERE子句里用courseNo = ...会触发“字段不存在”的错误,而且NextOfKin和Course表之间没有直接关联,得通过学生信息来搭桥才行。
问题核心
要查询课程编号1001的学生的紧急联系人,我们需要先找到选了该课程的学生ID,再关联到NextOfKin表获取联系信息。通常这里会存在一个中间关联表(比如Student表或者Student_Course关联表),因为学生和课程一般是一对多/多对多的关系。
正确的SQL写法
情况1:存在Student表(包含StudentID和CourseNo,一个学生对应一门课)
SELECT nk.StudentID, nk.ContactTelNo FROM NextOfKin nk INNER JOIN Student s ON nk.StudentID = s.StudentID WHERE s.CourseNo = '1001';
情况2:存在Student_Course关联表(多对多场景,记录学生选的课程)
SELECT nk.StudentID, nk.ContactTelNo FROM NextOfKin nk INNER JOIN Student_Course sc ON nk.StudentID = sc.StudentID WHERE sc.CourseNo = '1001';
逻辑说明
- 用
INNER JOIN把NextOfKin和关联表(Student/Student_Course)通过StudentID连接起来,这样就能把学生的课程信息和紧急联系人信息关联起来。 - 通过
WHERE子句过滤出课程编号为1001的记录,最终得到对应学生的紧急联系人ID和电话。
内容的提问来源于stack exchange,提问作者Toms
相关产品推荐
相关产品推荐

