sql not in 优化问题

问题情境:

  not in 耗时过长。想用join或exits代替。结果并不明显,这里先记录3种写法,以后探讨速度问题。

sql语句:

                    // not exists
                    sql = @"select c.customerid, c.customername, c.sex, c.birthday, c.CustomerNumber, s.CreateTime, d.description, s.seriesID
                            from customerinfo c, seriestable s, sitecode d
                            where s.customerid = c.customerid
                            and s.createsite = d.siteid
                            and not exists  
                            (select 1 from customer_healthinfo h where h.customerid = c.customerid) 
                            order by s.CreateTime";
                    //not in
                    sql = @"select c.customername, c.sex, c.birthday, c.CustomerNumber, s.CreateTime, d.description, s.seriesID
                            from customerinfo c, seriestable s, sitecode d
                            where s.customerid = c.customerid
                            and s.createsite = d.siteid
                            and c.customerid not in  
                            (select customerid from customer_healthinfo) order by s.CreateTime";
                    //left join
                    sql = @"select customername, sex, birthday, CustomerNumber, tempA.CreateTime, tempA.description, tempA.seriesID
                            from 
                            (select c.customerid, c.customername, c.sex, c.birthday, c.CustomerNumber, s.CreateTime, d.description, s.seriesID
                            from customerinfo c, seriestable s, sitecode d
                            where s.customerid = c.customerid
                            and s.createsite = d.siteid) as tempA left join customer_healthinfo h 
                            on tempA.customerid = h.customerid
                            where h.customerid is null 
                            order by CreateTime";

 

转载于:https://www.cnblogs.com/gaara-zhang/p/10695436.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值