用sql语句写查询至少选修一门课程的学生学号
时间: 2023-08-04 21:37:08 浏览: 96
可以使用如下的 SQL 查询语句来选出至少选修一门课程的学生学号:
```
SELECT DISTINCT student_id
FROM course_selection;
```
假设我们有一个名为 `course_selection` 的表,其中包含着所有学生的选课记录。这个表至少应该包含两个字段:`student_id` 和 `course_id`。上述查询语句会选出所有在 `course_selection` 表中出现过的学生 ID,并且去重,确保每个学生只出现一次。因为我们只需要选出至少选修过一门课程的学生,所以不需要在查询中指定任何条件。
相关问题
sql语句 查询出只选修了一门课程的全部学生的学号和姓名
好的,针对你的问题,以下是对应的 SQL 语句:
```
SELECT s.id, s.name
FROM student s
INNER JOIN sc ON s.id = sc.sid
GROUP BY sc.sid
HAVING COUNT(sc.cid) = 1;
```
这个 SQL 查询语句的大致思路如下:
1. 从 `student` 和 `sc` 两张表中关联查询学生的学号和课程的课程号;
2. 通过 `GROUP BY` 对学生的学号进行分组;
3. 通过 `HAVING` 限制查询结果,只保留选课数量为 1 的学生。
希望这个回答能够帮助到你!
数据库SQL语句中 查询选修了全部课程的学生的学号和姓名
可以使用如下的SQL语句查询选修了全部课程的学生的学号和姓名:
```
SELECT student.id, student.name
FROM student
WHERE NOT EXISTS (
SELECT course.id
FROM course
WHERE NOT EXISTS (
SELECT *
FROM sc
WHERE sc.sid = student.id AND sc.cid = course.id
)
);
```
这个SQL语句的意思是:查询所有的学生的学号和姓名,但是要求这些学生选修了所有的课程(即不存在任何一门课程没有被选修)。