运用MySQL:查询没有选修“计算机基础”课程的学生姓名。(使用子查询)
时间: 2024-04-02 13:36:58 浏览: 23
可以使用以下 SQL 语句来查询没有选修“计算机基础”课程的学生姓名:
```
SELECT name
FROM students
WHERE id NOT IN (
SELECT student_id
FROM course_selections
WHERE course_id = (
SELECT id
FROM courses
WHERE name = '计算机基础'
)
);
```
以上查询语句中,首先使用了子查询来获取“计算机基础”这门课程的课程 ID,然后在外部查询中使用了 NOT IN 运算符来排除选修了这门课程的学生。最终的结果是返回所有没有选修该课程的学生姓名。
相关问题
mysql查询所有没有选修3号课程的学生姓名
好的,请稍等,我来帮您查询一下。
SELECT name FROM students WHERE id NOT IN (SELECT student_id FROM courses WHERE course_id = 3)
以上是 MySQL 的查询语句,可以获取所有没有选修3号课程的学生姓名。
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 子句过滤出选修课程为空的记录,最后只查询学号和姓名两个字段。