【发布时间】:2016-08-04 10:59:41
【问题描述】:
我有以下简化查询:
Select
(select sum(f1) from tableA a where a.id = t.id) sum1,
(select sum(f2) from tableB b where b.id = t.id) sum2,
t.*
from Table t;
我的愿望是重复使用 sum1 和 sum2 而无需再次计算:
Select
(select sum(f1) from tableA a where a.id = t.id) sum1,
(select sum(f2) from tableB b where b.id = t.id) sum2,
sum1 + sum2 `sum3`,
t.*
from Table t;
当然我可以执行以下查询,但这会不必要地加倍运行时间:
Select
(select sum(f1) from tableA a where a.id = t.id) sum1,
(select sum(f2) from tableB b where b.id = t.id) sum2,
(select sum(f1) from tableA a where a.id = t.id) +
(select sum(f2) from tableB b where b.id = t.id) `sum3`,
t.*
from Table t;
甚至将 sum1 和 sum2 结果插入到临时表中,但无法成像我忽略了一些东西,让 mysql 对求和字段进行一些有效的查询。
有没有更好、更有效的方法来重用求和字段?
【问题讨论】: