sql查询选修了课程的学生姓名
时间: 2023-10-23 07:10:48 浏览: 133
可以使用如下的 SQL 语句来查询选修了课程的学生姓名:
```
SELECT DISTINCT student.name
FROM student
INNER JOIN sc ON student.id = sc.sid
WHERE sc.cid IN (
SELECT course.id
FROM course
WHERE course.name = '选修课程名称'
)
```
其中,`student` 表是学生表,包含学生的 `id` 和 `name` 等信息;`course` 表是课程表,包含课程的 `id` 和 `name` 等信息;`sc` 表是学生选课关系表,包含学生的 `id`,课程的 `id`,以及该学生在该课程中的成绩等信息。以上 SQL 语句中,我们首先通过子查询获取选修课程的 `id`,然后通过 `INNER JOIN` 将学生表和选课关系表连接起来,再通过 `WHERE` 条件筛选出选修了指定课程的学生,并使用 `DISTINCT` 关键字去除重复的学生姓名。
相关问题
用SQL查询选修课程的学生姓名。
假设有两个表,一个是学生表(students),一个是选课表(course_selections),选课表中有学生ID(student_id)和课程ID(course_id)两个字段,可以使用以下SQL语句查询选修某门课程的学生姓名:
```
SELECT students.name
FROM students
INNER JOIN course_selections
ON students.id = course_selections.student_id
WHERE course_selections.course_id = '某门课程的ID'
```
其中,'某门课程的ID'需要替换为具体的课程ID。这条SQL语句使用INNER JOIN将学生表和选课表连接,然后使用WHERE子句过滤出选修了特定课程的学生,最后查询出学生姓名。
sql查询选修了全部课程的学生姓名
以下是查询选修了全部课程的学生姓名的SQL语句:
```sql
SELECT 姓名 FROM student_88 WHERE 学号 = (
SELECT 学号 FROM grade_88 GROUP BY 学号 HAVING COUNT(*) = (
SELECT COUNT(*) FROM course_88
)
);
```
该语句中,首先在`grade_88`表中按照学号进行分组,然后筛选出选课数等于全部课程数的学生学号,最后在`student_88`表中根据学号查询对应的姓名。
阅读全文