mysql - 通过另外一张表进行SQl查询

标签 mysql sql phpmyadmin

Programme                     Student                      Grade
Pid (pk)                      StudentID(pk)                ModuleID(cpk)     
                              ProgrammeID(fk)              StudentID(cpk)
                                                           Gradepercent    

我有三个表,一个程序表、成绩表和学生表。我正在尝试获取每个程序的平均百分比成绩。问题是 grade 表没有链接到 Program 表,仅由 student 表连接。主键是program表的programmeid(student表中的fk)和student表中的studentid,在moduleid/studentid的grade表中使用复合pk来标识年级。 (模块数据库中的第四个表包含不相关的 moduleid)

我如何进行查询以获得节目的 av 等级?我假设有一种方法可以不使用学生表来做到这一点,类似于

SELECT AVG(Gradepercent) from grade AND group by ProgrammeID from programme

(语法错误)但更喜欢使用学生表的查询,通过他们的关系访问成绩表中的信息。

关于如何解决这个问题的任何想法?我知道这不是很清楚,但如果有人能指出我正确的方向,那会很有帮助。

(我有一个 ERD 可以使这篇文章更清晰,但出于某种原因,尽管我有 10 个声誉,但我不允许发布它)。

提前致谢。

最佳答案

SELECT Student.ProgrammeID, AVG(Grade.GradePercent)
FROM Student
INNER JOIN Grade ON Student.StudentID = Grade.StudentID
GROUP BY Student.ProgrammeID

关于mysql - 通过另外一张表进行SQl查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15620656/

相关文章:

用于一次检查多个值的 MySQL 语法查询

sql - 如何将值列表传递给一个 Oracle Report 参数?

sql - 选择两列中两个日期之间的记录

mysql - 如果 mysql 中的条件未按预期工作

php - 具有多个 where 子句的 select 查询是否在一个结果表中返回多个结果行?

php - yii2数据提供者查询需要很长时间

mysql - 使用 LOAD DATA INFILE 时出现 1045 错误

php - 删除语句显示删除成功,但不删除记录

MySQL如何获得可能重叠日期的开始/结束日期总和

mysql - SQL表设计问题