查询选修了1和2号课程的学生
时间: 2023-11-24 11:26:29 浏览: 61
您好!针对您的问题,可以使用以下SQL语句进行查询:
```
SELECT student_id
FROM course_selection
WHERE course_id IN ('1', '2')
GROUP BY student_id
HAVING COUNT(DISTINCT course_id) = 2;
```
其中,假设选修关系表为`course_selection`,其中包含`student_id`和`course_id`两个字段,表示某个学生选修了某门课程。以上SQL语句中,使用`IN`关键字筛选选修了1号课程和2号课程的学生,然后使用`GROUP BY`对学生ID进行分组,再使用`HAVING`关键字筛选选修了2门课程的学生。
相关问题
查询至少选修了课程号为1,2的学生
可以使用如下SQL查询语句来查询至少选修了课程号为1和2的学生:
```
SELECT DISTINCT Sno
FROM sc
WHERE Cno IN (1, 2)
GROUP BY Sno
HAVING COUNT(DISTINCT Cno) = 2;
```
这个查询语句首先从成绩表(sc)中选取选修了1或2课程的学生编号(Sno),然后按照学生编号分组,计算每个学生选修的不同课程数目。最后,通过HAVING子句筛选出选修了两门课程的学生。使用DISTINCT关键字去除重复的学生编号,即可得到至少选修了课程号为1,2的学生编号列表。
查询有2个以上学生选修的课程的课程号
这个问题可以使用SQL语言来查询,并且答案如下:
SELECT course_id
FROM course
WHERE course_id IN
(SELECT course_id
FROM sc
GROUP BY course_id
HAVING COUNT(DISTINCT student_id) >= 2);
请注意,这个查询语句假定有一个名为course的表存储所有课程列表,以及一个名为sc的表存储每个学生选择的课程。