如何结合 3 个表的结果来计算 MySql 中的平均分?

Posted

技术标签:

【中文标题】如何结合 3 个表的结果来计算 MySql 中的平均分?【英文标题】:How to combine result of 3 tables to calculate average marks in MySql? 【发布时间】:2018-05-14 19:19:20 【问题描述】:

我有这样的桌子

    学生(Rollno,姓名,地址) 主题(子代码,子名称) Marks(Roll_no, Sub_code, Marks)

我想查询每个学生的平均分(所有科目)以及学生姓名

例如

【问题讨论】:

将表格和数据发布为文本READ THIS 你试过什么?你知道INNER JOINGROUP BY 吗? 【参考方案1】:

您可以通过rollno 加入并按学生的rollno 对结果进行分组:

SELECT   s.rollno, name, AVG(marks)
FROM     student s
JOIN     marks m ON s.rollno = m.rollno
GROUP BY s.rollno, name

【讨论】:

我想你想要GROUP BY rollno, name 以防两个学生有相同的名字。 @JuanCarlosOropeza 可能不是一个坏主意。在给定的数据集中,名称是唯一的,但我同意我们不应该假设它。

以上是关于如何结合 3 个表的结果来计算 MySql 中的平均分?的主要内容,如果未能解决你的问题,请参考以下文章

mysql 千万级数据库如何进行多张结构相同的表联合查询?如何优化或设置提高查询速度?

如何使用 3 个表在 SQL 查询中获得完整结果,其中 1 个表保持 2 个表的关系?

如何加快对 3 个表的 MySQL 查询(总共大约 60M 行)

mysql用总和加入3个表给出错误的结果

MySQL SELECT 来自 1 个表的结果,但根据另一个表排除结果?

LEFT JOIN,如果存在第二个表的结果,则添加到 PHP 中的数组