病毒安全知识,电脑网络技术,手工杀毒方法,答疑解决笔记

导航

« 警惕,敲诈者病毒iPad重启与夜间模式 »

Oracle左连接中的条件子句

  Oracle的左连接类似于a.id=b.id(+)的条件在where子句中,实现a表全部数据与b表中id与a表中id相等数据的合集,这时a表中那些在b表中无对应id的数据所取得的b表所独有字段数据为空,但是如果这时在where子句中再加上一个b表的限制条件,比如减少搜索范围,如where a.id=b.id(+) and b.created_time>=sysdate-365,则在b表中无对应id的a表数据将消失,就和a.id=b.id一样。

  所以要使用左连接,同时又想增加对等号右边表的限定,有两种方法,一是再加上的右表限定条件也要加上(+),如where a.id=b.id(+) and b.created_time(+)>=sysdate-365,二是直接从from子句中就把b表先限制过滤了,如... from a,(select * from b where b.created_time>=sysdate-365) bb where a.id=bb.id(+)。

  似乎第一种方法并没有达到减少b表搜索量的目的,而对左连接等号左边的表(如上面说的a表)字段的限制条件则没有这些要求,其他的外连接情况类似。


>> 除非说明均为原创,如转载请注明来源于http://www.stormcn.cn/post/1619.html

发表评论(无须注册,所有评论在审核通过后显示):

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

  • 微信订阅号
    微信订阅

最新发表

最新评论及回复

本站出现的所有广告均不代表本人及本站观点立场 | 关于我 | 网站地图 | 联系邮箱 | 返回顶部
Copyright 2008-2020 www.stormcn.cn. All Rights Reserved. Powered By Z-Blog.

闽公网安备 35010202000133号