mysql查询至少选修了一门其直接先行课为5号课程得学生姓名
时间: 2024-09-20 16:10:17 浏览: 99
基于python+pyQt5+mysql实现的学生宿舍管理系统源码+GUI界面+项目说明文档(数据库课程设计).zip
5星 · 资源好评率100%
在MySQL中,我们可以使用JOIN和子查询来完成这样的查询。假设我们有两个表,一个是`students`表,包含学生的ID和姓名,另一个是`courses`表,包含课程ID、课程名以及间接依赖的课程ID(如果有的话)。这里假定`courses`表有一个字段`pre_course_id`表示直接先行课。
```sql
SELECT s.student_name
FROM students s
JOIN (
SELECT course_id
FROM courses
WHERE course_id = 5
) c1 ON s.student_id IN (
SELECT student_id
FROM (
SELECT student_id, pre_course_id
FROM courses
WHERE course_id = c1.course_id
) subquery
)
```
这个查询首先找出所有选修了5号课程的学生ID(c1.course_id),然后从`students`表中选择那些学生ID对应的学生姓名。如果数据库设计有所不同,可能需要调整JOIN条件和子查询结构。
阅读全文