mysql查询没学过“张三”老师课的学生的学号、姓名
封面图
•
2025-11-18
•
MySQL
184
0
0
0
要查询**没有学过“张三”老师课的学生的学号和姓名**,我们需要知道数据库中有哪些表以及它们的结构。假设我们有如下几张表: ### 表结构示例(假设): 1. **学生表(student)** - `student_id`:学生学号 - `name`:学生姓名 2. **教师表(teacher)** - `teacher_id`:教师编号 - `name`:教师姓名(如“张三”) 3. **课程表(course)** - `course_id`:课程编号 - `teacher_id`:授课教师编号(外键关联到 teacher 表) 4. **选课表(enroll)** - `student_id`:学生学号(外键关联到 student 表) - `course_id`:课程编号(外键关联到 course 表) --- ### 查询语句(MySQL): ```sql SELECT s.student_id, s.name FROM student s WHERE s.student_id NOT IN ( SELECT DISTINCT e.student_id FROM enroll e JOIN course c ON e.course_id = c.course_id JOIN teacher t ON c.teacher_id = t.teacher_id WHERE t.name = '张三' ); ``` --- ### 说明: - 使用子查询找出所有**学过“张三”老师课程的学生学号**。 - 然后从所有学生中排除这些学号,得到**没学过“张三”老师课的学生**。 --- ### 如果你有其他表结构,请提供详细信息,我可以帮你调整 SQL 语句。
上一篇:
mysql查询姓“猴”的老师的个数
下一篇:
MySQL中 full join
标题录入,一次不能超过6条
留言
评论