sql查询数据,查询全部速度很快,改成not in查询未销售就很慢,怎样优化谢谢!

查询全部的sql:SELECTSUM(ps.projectcount)ascount,m.mediatypename,s.nameFROMt_projectp,t_pro... 查询全部的sql:SELECT SUM(ps.projectcount) as count, m.mediatypename, s.name FROM t_project p, t_projectsize ps, shannxi.dbo.t_surround_value_report ss, shannxi.dbo.t_surround_ad_data sv, shannxi.dbo.t_surround_district s, t_mediatype_infor m WHERE p.mediatypeinfoid in ( select id from fn_get_mediatype_infor(4) ) AND ss.dataid = s.id AND sv.id = ss.projectid AND p.id = ps.projectid AND p.dataid = sv.id AND p.isdelete=0 AND p.companyid = 2248 AND p.regionid=s.regionid AND s.regionid = 354 AND ss.datatype=2 AND ss.distance=-1 AND p.mediatypeinfoid=m.id GROUP BY m.mediatypename, s.name 改成not in查询未销售的sql:SELECT SUM(ps.projectcount) as count, m.mediatypename, s.name FROM t_project p, t_projectsize ps, shannxi.dbo.t_surround_value_report ss, shannxi.dbo.t_surround_ad_data sv, shannxi.dbo.t_surround_district s, t_mediatype_infor m WHERE p.mediatypeinfoid in ( select id from fn_get_mediatype_infor(4) ) AND ss.dataid = s.id AND sv.id = ss.projectid AND p.id = ps.projectid AND p.dataid = sv.id AND p.isdelete=0 AND p.companyid = 2248 AND p.regionid=s.regionid AND s.regionid = 354 AND ss.datatype=2 AND ss.distance=-1 AND p.mediatypeinfoid=m.id AND p.id NOT IN ( SELECT mm.mediaid FROM t_sale_agreement_media mm ) GROUP BY m.mediatypename, s.name 展开
 我来答
unique_lele
2016-06-13 · TA获得超过112个赞
知道小有建树答主
回答量:210
采纳率:100%
帮助的人:156万
展开全部
in 和not in 速度都会慢。改成not exists()去写 会快一些。 上面有一个in 可以改成用exists 去写。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式