编写SQL语句:查询选修了‘c1’课程的学生的学号和姓名,按成绩的降序排列。
时间: 2023-06-06 08:08:28 浏览: 188
可以的,以下是SQL语句:
SELECT 学号, 姓名 FROM 学生表
WHERE 学号 IN (SELECT 学号 FROM 选修表 WHERE 课程名='c1')
ORDER BY 成绩 DESC;
相关问题
Sql语句查询选修了课程C1,C5的学生学号
可以使用如下的 SQL 语句查询选修了课程 C1 和 C5 的学生学号:
SELECT 学生学号
FROM 选修表
WHERE 课程名称 IN ('C1', 'C5')
GROUP BY 学生学号
HAVING COUNT(DISTINCT 课程名称) = 2;
sql查询选修了课程001和课程002的学生学号
在SQL查询中,如果想要找出选修了课程001和课程002的学生学号,你可以使用JOIN操作结合GROUP BY和HAVING条件来实现。假设我们有两个表,一个是学生信息表(students),包含字段`student_id`(学号);另一个是选课表(courses),包含字段`student_id`和`course_id`。
查询语句可能会类似下面这样:
```sql
SELECT s.student_id
FROM students s
JOIN courses c1 ON s.student_id = c1.student_id AND c1.course_id = '001'
JOIN courses c2 ON s.student_id = c2.student_id AND c2.course_id = '002'
GROUP BY s.student_id
HAVING COUNT(DISTINCT c1.course_id) = 2 AND COUNT(DISTINCT c2.course_id) = 2;
```
这个查询会返回那些既选修了课程001又选修了课程002的学生的学号。注意,这里假设每个学生的ID在两个课程表中都只有一条记录。
阅读全文