我有三个SQL选择,需要将它们的结果加在一起。这三个中的两个使用相当复杂的联接。
select sum(field_one) from t_a join t_b on (t_a.bid = t_b.id) where t_b.user_id=:id select sum(field_two) from t_c join t_d on (t_c.did = t_d.id) where t_d.user_id=:id select sum(field_three) from t_e where t_e.user_id=:id
我需要的是所有三个值的总和。 sum(field_one)+sum(field_two)+sum(field_three)。无论如何,是否可以在单个语句中执行此操作?
sum(field_one)+sum(field_two)+sum(field_three)
你可以的UNION ALL。 请勿使用UNION,因为它会忽略重复的值(5+5+5会导致5)。
UNION ALL
UNION
5+5+5
5
Select Sum(s) From ( Select Sum(field_one) As s ... Union All Select Sum(field_two) ... Union All Select Sum(field_three) ... ) x