查询只选修一门课程的全部学生的学号和姓名
时间: 2023-11-24 15:50:25 浏览: 679
以下是查询只选修一门课程的全部学生的学号和姓名的SQL语句:
```
SELECT Sno, Sname
FROM SC, Student
WHERE SC.Sno = Student.Sno
GROUP BY SC.Sno
HAVING COUNT(Cno) = 1;
```
解释:首先将SC表和Student表连接起来,然后根据Sno分组,统计每个学生选修的课程数目,如果等于1,即只选修了一门课程,就将该学生的学号和姓名输出。
相关问题
用sql语句写查询至少选修一门课程的学生学号
可以使用如下的 SQL 查询语句来选出至少选修一门课程的学生学号:
```
SELECT DISTINCT student_id
FROM course_selection;
```
假设我们有一个名为 `course_selection` 的表,其中包含着所有学生的选课记录。这个表至少应该包含两个字段:`student_id` 和 `course_id`。上述查询语句会选出所有在 `course_selection` 表中出现过的学生 ID,并且去重,确保每个学生只出现一次。因为我们只需要选出至少选修过一门课程的学生,所以不需要在查询中指定任何条件。
查询出只选修一门课程的全部学生的学号和姓名? 答:
可以通过以下 SQL 语句查询出只选修一门课程的全部学生的学号和姓名:
```
SELECT s.student_id, s.student_name
FROM student s
INNER JOIN course_selection c ON s.student_id = c.student_id
GROUP BY s.student_id
HAVING COUNT(c.course_id) = 1;
```
其中,`student` 表为学生信息表,包含学生的学号和姓名等信息;`course_selection` 表为选课信息表,包含学生选修的课程信息,包括学生的学号和选修的课程号等信息。通过 `INNER JOIN` 将两个表连接起来,然后使用 `GROUP BY` 对学生进行分组,使用 `HAVING` 过滤出只选修了一门课程的学生。最终查询结果包含学生的学号和姓名两个字段。
阅读全文