sql查询无人选修的课程的课序号
时间: 2024-02-12 12:04:28 浏览: 22
可以使用以下SQL语句查询无人选修的课程的课序号:
```
SELECT course_id
FROM course
WHERE course_id NOT IN (
SELECT course_id
FROM student_course
);
```
其中,`course` 表为课程表,包含课程的课序号等信息;`student_course` 表为学生选课表,包含学生选修的课程信息。通过子查询,找出学生选修的课程,再通过 `NOT IN` 来筛选出没有学生选修的课程。
相关问题
sqlserver查询选修课程的人数
这个问题需要涉及到至少两个表,一个是课程表,一个是选课表。假设课程表中有以下字段:course_id, course_name, teacher_name;选课表中有以下字段:course_id, student_id。
查询选修课程的人数可以使用如下SQL语句:
```
SELECT c.course_id, c.course_name, COUNT(*) as student_count
FROM course c
INNER JOIN select_course sc ON c.course_id = sc.course_id
GROUP BY c.course_id, c.course_name
```
这个查询语句使用了INNER JOIN连接课程表和选课表,并使用GROUP BY对课程进行分组,然后使用COUNT函数统计每个课程的选课人数。最终结果中包含了每个课程的ID、名称和选课人数。
sql查询选修了课程的学生姓名
可以使用如下的 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` 关键字去除重复的学生姓名。