mysql 查询选课学生的考试情况,要求返回学号,姓名,课程名称及成绩。其中,如有某些学生没有考试的情况,则显示成绩信息为“缺考”。
时间: 2024-01-04 09:03:00 浏览: 35
可以使用以下 SQL 语句查询选课学生的考试情况:
```
SELECT student.id, student.name, course.name, IFNULL(score.score, '缺考') AS score
FROM student
INNER JOIN score ON student.id = score.student_id
INNER JOIN course ON score.course_id = course.id;
```
在该 SQL 语句中,使用了 INNER JOIN 连接了三个表:student、score 和 course。其中,student 表和 score 表之间通过学生 ID 进行连接,score 表和 course 表之间通过课程 ID 进行连接。
在 SELECT 语句中,使用了 IFNULL 函数来判断成绩是否为空,如果为空则显示“缺考”。
需要注意的是,该 SQL 语句仅适用于已经有选课信息和成绩信息的情况。如果某些学生没有选课或者没有考试,则无法在查询结果中显示。
相关问题
mySQL建立学生选修课程情况视图(学号,课程名称,成绩)。括号中的内容来自三张不同的表
回答:这个问题属于技术问题。您可以使用以下语句创建学生选修课程情况视图:
CREATE VIEW 学生选修课程情况视图 AS
SELECT 学生表.学号, 课程表.课程名称, 成绩表.成绩
FROM 学生表
JOIN 选课表 ON 学生表.学号 = 选课表.学号
JOIN 课程表 ON 选课表.课程号 = 课程表.课程号
JOIN 成绩表 ON 选课表.选课号 = 成绩表.选课号;
其中,学生表、选课表、课程表、成绩表是三张不同的表,根据您的实际情况进行替换即可。
统计每个学生的选课门数和考试总成绩,MySQL
假设有两个表,一个是学生表(student),包含学生的学号(id)和姓名(name);另一个是选课表(course),包含选课信息,包括学号(id)、课程名称(name)和考试成绩(score)。
可以使用如下 SQL 语句来统计每个学生的选课门数和考试总成绩:
```
SELECT student.id, student.name, COUNT(course.id) AS num_courses, SUM(course.score) AS total_score
FROM student LEFT JOIN course ON student.id = course.id
GROUP BY student.id, student.name
```
这里使用了 LEFT JOIN 进行学生表和选课表的关联,以保证即使某个学生没有选课,也能出现在结果中。然后使用 COUNT 函数统计选课门数,使用 SUM 函数统计考试总成绩。最后使用 GROUP BY 子句按照学生的 id 和 name 进行分组,得到每个学生的选课门数和考试总成绩。