查询gg老师讲的所有课中只学过其中一部分的学生姓名,mysql仅用exists和in语句
时间: 2024-11-05 22:34:25 浏览: 17
【mysql知识点整理】 — 准确理解 in 和 exists
在MySQL中,如果你想要查询只学习了GG老师部分课程的学生姓名,你可以使用`EXISTS`子查询结合`IN`来实现这个逻辑。假设有一个`students`表记录学生信息,包括姓名`name`和他们学习过的课程ID,以及一个`courses`表记录课程信息,包括课程名称和教师`teacher`。
**查询示例**:
```sql
SELECT s.name
FROM students s
WHERE EXISTS (
SELECT 1
FROM courses c
WHERE c.teacher = 'GG' AND c.course_id IN (
SELECT course_id
FROM students_courses sc
WHERE sc.student_name = s.name
)
);
```
在这个查询中,外部的`EXISTS`子查询检查每个学生的课程记录(`students_courses`)是否存在GG老师的课程。如果存在,则表示该学生学习了GG老师的部分课程,满足条件的学生姓名会被返回。
阅读全文