sql,查询某个人不学的课程
时间: 2024-04-17 18:07:01 浏览: 13
假设有如下的表结构:
```
students表:
+----+--------+
| id | name |
+----+--------+
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie|
+----+--------+
courses表:
+----+------------+
| id | course |
+----+------------+
| 1 | Math |
| 2 | English |
| 3 | History |
+----+------------+
选课表enrollments:
+----+-------------+--------------+
| id | student_id | course_id |
+----+-------------+--------------+
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 2 | 2 |
| 4 | 2 | 3 |
| 5 | 3 | 1 |
+----+-------------+--------------+
```
如果需要查询Bob没有选的课程,可以使用以下的SQL语句:
```
SELECT course
FROM courses
WHERE course NOT IN (
SELECT course
FROM enrollments
JOIN students ON enrollments.student_id = students.id
WHERE students.name = 'Bob'
);
```
这个SQL语句的意思是:先找到Bob的id,然后在选课表中找到Bob选过的所有课程,最后再在课程表中找到没有被Bob选过的课程。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)