检索至少选修了c2和c3的学生学号,姓名,课程号
时间: 2023-10-30 10:04:45 浏览: 178
好的,根据你的要求,可以使用以下 SQL 查询语句:
```
SELECT s.sno, s.sname, sc.cno
FROM student s, sc
WHERE s.sno = sc.sno
AND sc.cno IN ('c2', 'c3')
GROUP BY s.sno, s.sname, sc.cno
HAVING COUNT(DISTINCT sc.cno) = 2;
```
这条 SQL 语句会查询出选修了 c2 和 c3 两门课程的学生学号、姓名和课程号。其中,使用了学生表(student)和选课表(sc)两张表,通过学生表中的学号(sno)和选课表中的学号(sno)进行关联查询。同时,使用了 IN 子句来判断课程号是否包含 c2 或 c3,使用了 GROUP BY 和 HAVING 子句进行分组和筛选,确保只有同时选修了 c2 和 c3 两门课程的学生被查询出来。
相关问题
检索至少选修三门课程的学生学号;
可以使用以下SQL语句来检索至少选修三门课程的学生学号:
```
SELECT sid FROM score GROUP BY sid HAVING COUNT(cid) >= 3;
```
这条语句首先按照学生编号(sid)分组,然后使用HAVING子句过滤掉选修课程数量小于3门的学生,最后返回符合条件的学生学号。
30.查询选修c2和c3课程的学生学号 31.查询选修了课程’c1'并且选修课程在三门以上的同学学号 32.检索至少选修两门课程的学生姓名。(采用自身连接查询)
30. 查询选修c2和c3课程的学生学号可以使用以下SQL语句:
SELECT DISTINCT student_id FROM course_selection WHERE course_id IN ('c2', 'c3');
31. 查询选修了课程’c1'并且选修课程在三门以上的同学学号可以使用以下SQL语句:
SELECT student_id FROM course_selection WHERE course_id = 'c1' GROUP BY student_id HAVING COUNT(DISTINCT course_id) >= 3;
32. 检索至少选修两门课程的学生姓名(采用自身连接查询)可以使用以下SQL语句:
SELECT DISTINCT a.student_name FROM course_selection a, course_selection b WHERE a.student_id = b.student_id AND a.course_id <> b.course_id;
阅读全文