我需要将一个表与另一个表连接起来,对于左表中的每种类型的组,我都可以在第二个表中获得此值类型的总和,其中group_type = 4。
我尝试了以下操作:

SELECT *
FROM orbiting_group_types ogt
LEFT JOIN
(SELECT SUM(val)
 FROM report_orbiting_vals  rov
 ORDER by TYPE
 WHERE rov.orbiting_group_type_id = 4)
ON ogt.id = rov.orbiting_group_type_id


但是它给我抛出一个错误-

 syntax error at or near "WHERE"
LINE 8:  WHERE rov.orbiting_group_type_id = 4)


我错过了什么?

最佳答案

尝试这个:

SELECT *
FROM orbiting_group_types ogt
LEFT JOIN
(SELECT SUM(val)
FROM report_orbiting_vals  subrov
WHERE subrov.orbiting_group_type_id = 4
//ORDER by TYPE
) rov
ON ogt.id = rov.orbiting_group_type_id


1)您应该命名子查询以引用它们。您不能从子查询的外部到内部进行引用。

2)TYPE听起来不像列名

3)ORDER BY总是放在WHERE之后。

关于mysql - SQL左连接与SUM,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39371058/

10-11 03:20