34,593
社区成员
发帖
与我相关
我的任务
分享
select fd_shortenedform,fd_spec,
(
select sum(number) as number from [order]
where refund_status ='NO_REFUND' and (outer_iid = tb_goods.fd_spec or outer_sku_id = tb_goods.fd_spec)
) as fd_number
from tb_goods
select fd_shortenedform,fd_spec,
(select sum(number) as number from [order]
where refund_status ='NO_REFUND' and
exists (
select fd_spec from tb_goods as t where tb_goods.fd_spec=[order].outer_sku_id
union all
select fd_spec from tb_goods as t where tb_goods.fd_spec=[order].outer_iid
)
and tid in (SELECT tid FROM TradeList where (pay_time between '2012-5-01 0:00:00' and '2012-6-1 0:00:00') and type_status is null and status in('WAIT_SELLER_CHECK','WAIT_SELLER_SEND_GOODS', 'WAIT_BUYER_CONFIRM_GOODS','TRADE_BUYER_SIGNED','TRADE_FINISHED')
union all
SELECT tid FROM TradeList where (pay_time between '2012-5-01 0:00:00' and '2012-6-1 0:00:00') and type_status <> 0 and status in('WAIT_SELLER_CHECK','WAIT_SELLER_SEND_GOODS', 'WAIT_BUYER_CONFIRM_GOODS','TRADE_BUYER_SIGNED','TRADE_FINISHED'))
) as fd_number
from tb_goods
这个sql语句 帮看看,有没有什么地方能优化下,效率提高点......
select fd_shortenedform,fd_spec,
(
select sum(number) as number from [order]
where refund_status ='NO_REFUND' and (outer_iid = tb_goods.fd_spec or outer_sku_id = tb_goods.fd_spec)
) as fd_number
from tb_goods with(index(index_name))
--加个强行使用索引试一下。实在不行就分成两次然后再累加求和 SQL 语句的长短和效率不是成正比的