在同一个表中有学号和所选科目号。查询所选科目与学号为1同学完全相同的学生学号
时间: 2024-02-03 22:13:53 浏览: 27
假设表名为`选课表`,包含字段`学号`和`科目号`,可以使用如下 SQL 语句查询所选科目与学号为1同学完全相同的学生学号:
```
SELECT 学号
FROM 选课表
WHERE 科目号 IN (
SELECT 科目号
FROM 选课表
WHERE 学号 = 1
)
GROUP BY 学号
HAVING COUNT(DISTINCT 科目号) = (
SELECT COUNT(DISTINCT 科目号)
FROM 选课表
WHERE 学号 = 1
)
```
解释一下:
- 内层查询 `SELECT 科目号 FROM 选课表 WHERE 学号 = 1` 查询出学号为1的学生所选的所有科目号。
- 外层查询 `SELECT 学号 FROM 选课表 WHERE 科目号 IN (...) GROUP BY 学号 HAVING COUNT(DISTINCT 科目号) = ...` 查询出所选科目与学号为1同学完全相同的学生学号。其中,`IN (...)` 子句表示所选科目号必须在内层查询结果中,`GROUP BY 学号` 表示按学号分组,`HAVING COUNT(DISTINCT 科目号) = ...` 表示所选科目号的数量必须跟学号为1的学生所选科目号的数量相同。
相关问题
mysql查询学与号为1的学生所选科目完全相同的学生信息
可以使用子查询来实现这个功能。具体的 SQL 语句如下:
```
SELECT *
FROM student s1
WHERE NOT EXISTS (
SELECT *
FROM course c
WHERE c.student_id = s1.id
AND NOT EXISTS (
SELECT *
FROM course c2
WHERE c2.student_id = s.id
AND c2.subject = c.subject
)
) AND s1.id != 1;
```
解释一下,首先在外层查询中选出学号不为 1 的学生,然后使用 NOT EXISTS 子查询来判断是否存在其他学生的选课与该学生完全相同,如果不存在,则返回该学生的信息。里面的两个子查询分别用来比较两个学生的选课情况是否完全一致。
查询至少有一门课程 与 学号为1的同学所学课程 相同的同学的学号和姓名
根据您的要求,我可以给出以下 SQL 查询语句:
```
SELECT DISTINCT student.s_id, student.s_name
FROM student, sc
WHERE student.s_id = sc.s_id
AND sc.c_id IN (
SELECT c_id
FROM sc
WHERE s_id = '1'
);
```
这条 SQL 语句的作用是:先在 sc 表中找到学号为 1 的同学所学的所有课程,再在 sc 表中找到选修过这些课程的所有同学,最后在 student 表中查找这些同学的学号和姓名。使用 DISTINCT 关键字去重,保证每个同学只会出现一次。
希望能够帮到您!
相关推荐
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)