为何这条sql速度要快一些?

xiaobo 2001-12-19 11:49:56
如表titles
title_id type price
-------- ------------ ---------------------
BU1032 business 19.9900
BU1111 business 11.9500
BU2075 business 2.9900
BU7832 business 19.9900
MC2222 mod_cook 19.9900
MC3021 mod_cook 2.9900
MC3026 UNDECIDED NULL
PC1035 popular_comp 22.9500
PC8888 popular_comp 20.0000
PC9999 popular_comp NULL
PS1372 psychology 21.5900
PS2091 psychology 10.9500
PS2106 psychology 7.0000
PS3333 psychology 19.9900
PS7777 psychology 7.9900
TC3218 trad_cook 20.9500
TC4203 trad_cook 11.9500
TC7777 trad_cook 14.9900

查找包含不同价格的两本或多本廉价(低于 $15)书的类别:
查询语句一:
SELECT DISTINCT t1.type, t1.price
FROM titles t1 INNER JOIN titles t2
ON t1.type = t2.type
AND t1.price <> t2.price
WHERE t1.price < $15 AND t2.price < $15

查询语句二:
select distinct type,price
from titles
where type in
(
select type
from titles
where price<$15
group by type
having count(type)>1
)

为何查询一要快一些,有更好的方法吗?




...全文
51 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
流星尔 2001-12-21
  • 打赏
  • 举报
回复
根据sql语句处理流程来分析速度。on最快,where其次,having最慢。而使用distant、group by、order by都消耗服务器资源。
查询一,用on组合到一个临时表中查询,而查询用了in,group by都比较消耗资源。查询一比较好了。
lanying 2001-12-21
  • 打赏
  • 举报
回复
gz!
zhuzhichao 2001-12-21
  • 打赏
  • 举报
回复
能不用in儘量不要用.

特別是not in
xiaobo 2001-12-21
  • 打赏
  • 举报
回复
没有人看见啊,呵呵!
相关推荐
发帖
MS-SQL Server

3.4w+

社区成员

MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
帖子事件
创建了帖子
2001-12-19 11:49
社区公告
暂无公告