码迷,mamicode.com
首页 > 数据库 > 详细

SQL EXISTS 与 IN

时间:2015-02-03 12:44:56      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False
EXISTS 指定一个子查询,检测行的存在。

EXISTS与IN的使用效率的问题,通常情况下采用exists要比in效率高,因为IN不走索引,但要看实际情况具体使用:
IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况。

 

实例:(EXISTS)

select * from dbo.PurchaseSettleAccountsDetails d where exists(select * from dbo.PurchaseSettleAccounts where ApprovalStatus=1 and ID=d.PurchaseSettleAccountId)

(IN)

select * from dbo.PurchaseSettleAccountsDetails d where PurchaseSettleAccountId IN (select ID from dbo.PurchaseSettleAccounts where ApprovalStatus=1 and ID=d.PurchaseSettleAccountId)

SQL EXISTS 与 IN

标签:

原文地址:http://www.cnblogs.com/hongfu/p/4269585.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!