爱晚红枫技术部广东分部








永远自由的心

判断是否存在在父结果集中有而在子结果集中没有的记录的最佳方法

CSDN上有一个帖子:求:判断一个表的数据不在另一个表中最优秀方法?(高手请进)
有人说用left join效率最好

其实应该是EXISTS 的效率最高

如:
1.SELECT a.hdr_key  FROM hdr_tbl a WHERE NOT EXISTS (SELECT * FROM dtl_tbl b WHERE a.hdr_key = b.hdr_key)

2.SELECT a.hdr_key  FROM hdr_tbl a
LEFT JOIN dtl_tbl b ON a.hdr_key = b.hdr_key  WHERE b.hdr_key IS NULL

3.SELECT hdr_key  FROM hdr_tbl
WHERE hdr_key NOT IN (SELECT hdr_key FROM dtl_tbl) 
 
三种写法都可以得到同样正确的结果,但是效率依次降低。

posted on 2006-11-01 16:36 e旋风 阅读(324) 评论(0)  编辑 收藏 所属分类: SQL


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-11-01 16:43 编辑过
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接:
 

导航

统计

公告

人所拥有的「最后的」(last)自由是,
我们可以选择我们的态度。
遭遇同样的打击,
有的人选择的是绝望,
有的人却选择了希望



与我联系

搜索

 

常用链接

留言簿(4)

我的标签

随笔分类

文章分类

相册

收藏夹

Web标准

Web开发

xml学习

博客集合

图客

网站收藏夹

我的邻居

最新随笔

最新评论

阅读排行榜

评论排行榜