这是我的查询
select
cs.cont_selling_id,
price,
paid
from cont_selling cs
left join(
select sum(price) as price
,cont_selling_id
from cont_sold
group by cont_selling_id
)x on x.cont_selling_id = cs.cont_selling_id,
left join(
select sum(paid) as paid
,cont_selling_id
from payment
group by cont_selling_id
)y
on y.cont_selling_id = cs.cont_selling_id;
一切正常,但我认为与普通左连接相比需要更多时间,因为子查询适用于整个表。如果cont_sold表有超过100 000条记录,它将减慢服务器速度。
我的问题是有没有优化的方法来编写这个查询?我们可以从主表中添加子查询中的where条件吗?我在StackOverflow上看到了很多答案,但没有得到任何完美答案。