mysql求多课成绩之和_MySQL(学生表、教师表、课程表、成绩表)多表查询
时间: 2023-07-10 17:23:36 浏览: 121
假设有以下四个表:
- 学生表(students):id, name, age, gender
- 教师表(teachers):id, name, age, gender
- 课程表(courses):id, name, teacher_id
- 成绩表(scores):id, student_id, course_id, score
要求查询每个学生的多门课程成绩之和,可以使用以下 SQL 语句:
```
SELECT students.name, SUM(scores.score) as total_score
FROM students
LEFT JOIN scores ON students.id = scores.student_id
GROUP BY students.id
```
这条语句会把学生表和成绩表进行左连接,然后按照学生表的 id 分组,最后计算每个学生的成绩总和。注意,这个查询结果中只包含学生姓名和成绩总和,如果需要查询每个学生的具体课程成绩,可以把 scores 表的其他字段加入 SELECT 语句中。
相关问题
成绩查询表mysql_MySQL(学生表、教师表、课程表、成绩表)多表查询
可以使用以下 SQL 语句进行多表查询:
```sql
SELECT s.name AS student_name, t.name AS teacher_name, c.name AS course_name, sc.score
FROM student AS s
JOIN score AS sc ON s.id = sc.student_id
JOIN course AS c ON sc.course_id = c.id
JOIN teacher AS t ON c.teacher_id = t.id
```
其中,`student` 表包含学生信息,`teacher` 表包含教师信息,`course` 表包含课程信息,`score` 表包含成绩信息。这个查询语句会返回每个学生的每门课程的成绩以及对应的教师名字。
这个查询语句使用了 `JOIN` 操作符连接了四个表。首先,我们连接了 `student` 表和 `score` 表,以获取每个学生的成绩信息。然后,我们连接了 `course` 表,以获取每门课程的信息。最后,我们连接了 `teacher` 表,以获取每个教师的名字。
在这个查询语句中,我们使用了表别名(如 `s`、`t`、`c` 和 `sc`),以简化 SQL 语句并提高可读性。
用MySQL写一篇关于 2、现有学生,课程,成绩三张表。 student(学生表):stu_id:学生id,stu_name:学生姓名,birthday:学生出生日期,stu_sex:学生性别。 course(课程表):cou_id:课程id,cou_name:课程名字。 grades(成绩表):stu_id:学生id,cou_id:课程id;score:成绩。 学生表student 课程表course 成绩表grades (1)查询名字中含有“云”字的学生信息。要求:写出查询的字段名。 (2)查询每门课的最高成绩、最低成绩、平均成绩。要求:查询结果列表名分别为课程、最高成绩、最低成绩、平均成绩。
好的,您的问题我已经接收到了。以下是您所需要的MySQL代码:
(1) 查询名字中含有“云”字的学生信息,字段名为:学生id、学生姓名、学生出生日期、学生性别。
```sql
SELECT stu_id, stu_name, birthday, stu_sex
FROM student
WHERE stu_name LIKE '%云%';
```
(2) 查询每门课的最高成绩、最低成绩、平均成绩,查询结果列表名分别为:课程、最高成绩、最低成绩、平均成绩。
```sql
SELECT cou_name AS 课程, MAX(score) AS 最高成绩, MIN(score) AS 最低成绩, AVG(score) AS 平均成绩
FROM course
INNER JOIN grades ON course.cou_id = grades.cou_id
GROUP BY cou_name;
```
希望以上MySQL代码能够解决您的问题,如有疑问请随时追问。
阅读全文