mysql查询选修课程成绩最高的学生姓名、课程名、成绩。
时间: 2023-12-22 14:06:28 浏览: 55
好的,这个问题是关于数据库查询的,我可以提供以下 SQL 查询语句:
SELECT s.name, c.course_name, MAX(sc.score)
FROM student s, course c, score sc
WHERE sc.student_id=s.id AND sc.course_id=c.id AND c.is_optional=1
GROUP BY s.id, c.id;
这个查询语句可以查询选修课程成绩最高的学生姓名、课程名、成绩。请注意,这个查询语句假设选修课程的 is_optional 字段为 1,你需要根据实际情况修改语句中的数据库表和字段名称。
相关问题
mysql查询出只选修两门课程的学生学号和姓名(排除选修课程无成绩)
为了查询只选修两门课程的学生学号和姓名,我们需要使用多个表连接和聚合函数。以下是查询语句:
```sql
SELECT s.学号, s.姓名
FROM 学生表 s
JOIN 选课表 c ON s.学号 = c.学号
JOIN (SELECT 学号, COUNT(*) AS cnt FROM 选课表 WHERE 成绩 IS NOT NULL GROUP BY 学号 HAVING cnt = 2) t ON s.学号 = t.学号
WHERE c.成绩 IS NOT NULL;
```
这个查询语句中,我们首先连接了学生表和选课表,然后使用子查询和聚合函数找到只选修了两门课程的学生学号,最后再通过WHERE子句排除选修课程无成绩的情况。请注意,这个查询语句假设学生表的主键是学号,选课表的外键是学号。
mysql查询选修2号课程且成绩在90分以上的所有学生的学号和姓名
以下是MySQL查询选修2号课程且成绩在90分以上的所有学生的学号和姓名的语句:
```mysql
SELECT student.sno, student.sname
FROM student, sc
WHERE student.sno = sc.sno
AND sc.cno = '2'
AND sc.grade >= 90;
```
其中,`student`是学生表,`sc`是选课表,`sno`是学号,`sname`是姓名,`cno`是课程号,`grade`是成绩。
相关推荐
![application/x-dosexec](https://img-home.csdnimg.cn/images/20210720083343.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)