sql查询所有未选修了c2课程的学生姓名
时间: 2023-11-24 13:52:35 浏览: 169
以下是两种查询所有未选修了c2课程的学生姓名的SQL语句:
1. 采用not in的方法
```sql
SELECT S.sname
FROM S
WHERE S.sno NOT IN (
SELECT SC.sno
FROM SC
WHERE SC.cno = 'c2'
);
```
2. 采用not exists的方法
```sql
SELECT S.sname
FROM S
WHERE NOT EXISTS (
SELECT *
FROM SC
WHERE SC.sno = S.sno AND SC.cno = 'c2'
);
```
相关问题
SQL检索选修课程C2的学生中成绩最高的学生的姓名和学号
您好!根据您的问题,我可以为您提供以下 SQL 查询语句:
SELECT 学号, 姓名
FROM 学生
WHERE 学号 IN (
SELECT 学号
FROM 选修
WHERE 课程编号 = 'C2'
AND 成绩 = (
SELECT MAX(成绩)
FROM 选修
WHERE 课程编号 = 'C2'
)
);
这将返回选修课程 C2 的学生中,成绩最高的学生的姓名和学号。如果您有其他问题,请继续提出。
使用mysql嵌套查询IN和关联查询两种方式, 查询选修了C2课程的学生姓名
好的,这是一道SQL查询问题。以下是两种解决方案:
使用嵌套查询(IN子句):
```
SELECT DISTINCT name FROM students WHERE id IN (
SELECT student_id FROM course_selections WHERE course_id = (
SELECT id FROM courses WHERE name = 'C2'
)
);
```
使用关联查询(JOIN):
```
SELECT DISTINCT name FROM students
JOIN course_selections ON students.id = course_selections.student_id
JOIN courses ON course_selections.course_id = courses.id
WHERE courses.name = 'C2';
```
以上两种方法都能实现查询选修了C2课程的学生姓名。我希望这个回答能够帮助到您。