我正在尝试查询 3 个表:students
、template_subjects
和 subjects
。
students
和 template_subjects
表有一个 template_code
列,所以我可以通过这个列加入他们(我认为这是一个数据透视表在 template_codes
表和 subjects
表之间。这不是我设计的数据库,现在只是查询它)。
现在,我需要从按 template_code
分组的 subjects
表中获取 units
列的总和。我该怎么做?
这是我到目前为止尝试过的:
SELECT
s.studNo as 'Student Number',
s.lastName as 'Student Name',
s.template_code as 'Template Code',
(SELECT sum(units) FROM subjects
JOIN template_subjects ON subjects.subject_code=template_subjects.subject_code
GROUP BY s.template_code) as 'Units'
FROM students as s
JOIN template_subjects ON template_subjects.template_code=s.template_code
我希望从查询中得到的是,例如:
Student Number | Student Name | Template Code | Units
201555101 Jane Doe ACC301 35
其中 Units
是特定模板代码中主题的总单位。 (表名和列的名称要复杂得多,所以我在这个问题中简化了它们。请告诉我我在这个问题中可能写的任何错误或混淆的部分。)
最佳答案
我想你想要这样的东西:
SELECT s.studNo as `Student Number`, s.lastName as `Student Name`,
s.template_code as `Template Code`,
(SELECT sum(ts.units)
FROM template_subjects ts
WHERE s.subject_code = ts.subject_code
) as Units
FROM students s;
也就是说,您只需要一个相关的子查询,而不是那么多的连接。
关于mysql - 来自二度连接的列的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39606235/