怎么在sql中查询既选修了001号课程又选修了002号课程的学生
时间: 2023-06-11 16:07:48 浏览: 210
假设学生选修课程的信息存储在以下两个表中:
- 学生表(students):包含学生的基本信息,每个学生有一个唯一的学号(id)。
- 选课表(course_selections):包含学生选修课程的信息,每个选课记录由学生的学号和课程的编号(course_id)组成。
我们可以使用 SQL 的 INNER JOIN 和 WHERE 子句来查询既选修了001号课程又选修了002号课程的学生,具体的查询语句如下:
```
SELECT students.id, students.name
FROM students
INNER JOIN course_selections cs1 ON students.id = cs1.student_id
INNER JOIN course_selections cs2 ON students.id = cs2.student_id
WHERE cs1.course_id = '001' AND cs2.course_id = '002';
```
上述语句中,我们首先使用 INNER JOIN 连接了学生表和选课表两个表,然后通过 WHERE 子句筛选出选修了001号课程和002号课程的学生。注意,为了同时连接两个选课表,我们使用了两个别名(cs1 和 cs2)来区分它们。最后,我们选择了学生表中的学号和姓名作为查询结果。
相关问题
检索出 sc表中至少选修了’C001’与’C002’课程的学生学号。
可以使用以下 SQL 查询语句来实现:
```
SELECT DISTINCT 学号
FROM sc
WHERE 课程号 IN ('C001', 'C002')
GROUP BY 学号
HAVING COUNT(DISTINCT 课程号) = 2
```
解释一下查询语句:
- 首先在 `sc` 表中选取所有选修了 'C001' 或 'C002' 课程的记录。
- 然后按照学号分组,统计每个学生选修的不同课程数目。
- 最后筛选出选修了两门不同课程的学生学号。`HAVING` 子句用于筛选符合条件的分组结果,`COUNT(DISTINCT 课程号)` 表示统计不同的课程数目,这里要求等于 2,即同时选修了 'C001' 和 'C002' 两门课程。
sqlserver,有一张学生作业表,有3列:课程号、学号、成绩。同一个学号可能会对应多个课程号,如何查询没有选修课程号K001和K002的学生的学号、成绩,请用子查询
可以使用子查询和 NOT IN 来查询没有选修课程号 K001 和 K002 的学生的学号和成绩,SQL语句如下:
```
SELECT 学号, 成绩
FROM 学生作业表
WHERE 学号 NOT IN (
SELECT 学号
FROM 学生作业表
WHERE 课程号 IN ('K001', 'K002')
)
```
这个子查询会先找出选修了课程号 K001 或 K002 的学生,然后外层查询使用 NOT IN 找出没有选修这些课程的学生。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![sql](https://img-home.csdnimg.cn/images/20210720083646.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)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![application/x-dosexec](https://img-home.csdnimg.cn/images/20210720083343.png)