一张表,用sql查出只选两门课程的学生姓名和学号.
时间: 2024-03-07 07:49:00 浏览: 34
假设有以下表结构:
```
表名:student
字段:id(学号)、name(姓名)
表名:score
字段:id(学号)、course(课程名)
```
可以使用以下 SQL 语句查询只选了两门课程的学生姓名和学号:
```sql
SELECT s.id, s.name
FROM student s
INNER JOIN score sc ON s.id = sc.id
GROUP BY s.id, s.name
HAVING COUNT(DISTINCT sc.course) = 2;
```
这条 SQL 语句的含义是:先通过内连接将学生表和成绩表关联起来,然后按照学生的学号和姓名进行分组,最后在分组的结果中筛选出只选了两门不同课程的学生。
相关问题
sql查出只选两门课程的学生姓名和学号
可以使用如下的 SQL 语句来查找只选了两门课程的学生姓名和学号:
```
SELECT s.student_id, s.student_name
FROM student s
JOIN course_selection cs ON s.student_id = cs.student_id
GROUP BY s.student_id, s.student_name
HAVING COUNT(cs.course_id) = 2;
```
其中,`student` 表表示学生信息,包含 `student_id` 和 `student_name` 两个字段;`course_selection` 表表示选课信息,包含 `student_id` 和 `course_id` 两个字段。这个 SQL 语句使用 `JOIN` 连接两个表,然后使用 `GROUP BY` 分组,计算每个学生选课的数量,最后使用 `HAVING` 条件过滤只选了两门课程的学生。
mysql 同表查询出只选择两门课程的学生姓名和学号
假设有一个学生选课表,包含学生学号(student_id)和课程名称(course_name)两列,可以使用以下 SQL 语句查询出只选择两门课程的学生姓名和学号:
```
SELECT student_id, COUNT(DISTINCT course_name) AS course_count
FROM 表名
GROUP BY student_id
HAVING course_count = 2;
```
其中,COUNT(DISTINCT course_name) 统计不同课程的数量,HAVING 语句筛选只选择了两门课程的学生。如果还需要查询学生姓名,可以将查询结果与学生表进行 JOIN 操作。