SQL:利用多表更新优化子查询

原SQL:

update bi_data.order_list_wx
set is_start='1',proc_time=now()
where 1=1
and is_end='0'
and 交易时间<'{{开始日期}}'
and 商户订单号 in
(
select 商户订单号
from
(
select 商户订单号
from bi_data.order_list_wx
where 1=1
and is_end='0'
and 交易时间>='{{开始日期}}' and 交易时间<'{{截止日期}}'
and 商品名称 like '四部曲APP%'
) tt
)

 

优化:利用多表更新关联优化代码:

update bi_data.order_list_wx a join
(
    select 商户订单号
    from bi_data.order_list_wx 
    where 1=1
    and is_end='0'
    and 交易时间>='{{开始日期}}' and 交易时间<'{{截止日期}}'
    and 商品名称 like '四部曲APP%'
) b on a.商户订单号=b.商户订单号
set is_start='1',proc_time=now()
where a.is_end='0' and 交易时间<'{{开始日期}}'

 

posted @ 2021-12-20 09:47  xiaoyongdata  阅读(102)  评论(0编辑  收藏  举报