查询所有没有选修课程的学生的学号、姓名。
时间: 2023-05-12 19:02:56 浏览: 98
可以使用以下 SQL 语句查询所有没有选修课程的学生的学号和姓名:
SELECT student_id, student_name
FROM students
WHERE student_id NOT IN (SELECT student_id FROM course_selections);
其中,students 表存储所有学生的信息,包括学号和姓名;course_selections 表存储所有选课信息,包括学生选修的课程。使用子查询可以筛选出没有选修课程的学生。
相关问题
查询所有没有选修课程的学生的学号、姓名
可以使用如下 SQL 语句查询所有没有选修课程的学生的学号、姓名:
```
SELECT student_id, student_name
FROM student
WHERE student_id NOT IN (
SELECT student_id
FROM course_selection
)
```
其中,`student` 表是学生信息表,包括 `student_id` 和 `student_name` 等字段;`course_selection` 表是选课信息表,包括 `student_id` 和 `course_id` 等字段。以上 SQL 语句的含义是:查询 `student` 表中所有学号和姓名,并且这些学号在 `course_selection` 表中不存在。
MySQL查询所有没有选修课程的学生的学号、姓名
假设我们有以下两张表:
学生表 (students):
| 学号 | 姓名 |
| ---- | -----|
| 1 | 张三 |
| 2 | 李四 |
| 3 | 王五 |
| 4 | 赵六 |
选课表 (course_selections):
| 学号 | 课程编号 |
| ---- | -----|
| 1 | 1001 |
| 1 | 1002 |
| 2 | 1001 |
| 3 | 1003 |
则查询所有没有选修课程的学生的学号、姓名的SQL语句如下:
```
SELECT s.学号, s.姓名
FROM 学生表 s
LEFT JOIN 选课表 c ON s.学号 = c.学号
WHERE c.学号 IS NULL;
```
该语句使用了左连接(LEFT JOIN)将学生表和选课表连接起来,然后使用 WHERE 子句过滤出选修课程为空的记录,最后只查询学号和姓名两个字段。