我试图查询3个表:studentstemplate_subjectssubjects
studentstemplate_subjects表有一个template_code列,因此我可以通过这个列将它们连接起来(我认为这是一个介于template_codes表和subjects表之间的透视表。这不是我设计的数据库,只是现在查询它)。
现在,我需要从按units分组的subjects表中获取template_code列的和。我该怎么做?
以下是我目前所做的尝试:

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/

10-12 16:33