我需要将一个表与另一个表连接起来,对于左表中的每种类型的组,我都可以在第二个表中获得此值类型的总和,其中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/