以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- sql语句请教 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=105172) |
-- 作者:hbhb -- 发布时间:2017/8/13 11:29:00 -- sql语句请教 大师:请问SQL in子查询为何运行如此慢? S EL ECT * FROM {客户} WHERE 客户ID NOT IN (SE LECT 客户ID FROM {订单}
WHERE 订购日期 > #1998-5-1#) 2000行数据,上面的查询要60秒。就像死了一样 下面的语句快的很,得出的结果是否一样? SE L ECT * FROM {客户} WHERE 客户ID IN (SE LECT 客户ID FROM {订单} WHERE 订购日期 <= #1998-5-1#)
|
-- 作者:hbhb -- 发布时间:2017/8/13 11:33:00 -- 10万行的not in 子查询要用10多分钟,什么原因?怎么优化? |
-- 作者:hbhb -- 发布时间:2017/8/13 11:37:00 -- 以下代码查询3万行数据就像瘟鸡一样?什么意思? S e l ect * FR OM {dtpzzb} WHERE pzzb5 not In (S e lec t pzzb5 FROM {dtpzzb} WHERE pzzb12 = \'慢的一比吊扫\')
|
-- 作者:hbhb -- 发布时间:2017/8/13 11:59:00 -- ![]() |
-- 作者:有点甜 -- 发布时间:2017/8/13 14:22:00 -- 子查询改成连接查询
Select * FROM {客户} as a left join (Select 客户ID FROM {订单} WHERE 订购日期 <= #1998-5-1#) as b on a.客户id=b.客户id WHERE b.客户ID is not null |