问:我一直在对不同种类的Oracle连接做研究,目前还搞不清楚LEFT JOIN和LEFT OUTER JOIN之间有什么区别。Outer这个词是可选的么?因为Oracle中的LEFT JOIN是默认为OUTER JOIN的。如果是这样的话,我就不明白“INNER”和“OUTER”的用法了,因为显而易见INNER与JOIN或FULL JOIN一起使用从而产生两个表中所有的匹配(对于inner也是同样如此,对么?)。而OUTER可以和LEFT,RIGHT以及FULL一起使用。
这些关键词的使用难道只是用来强调JOIN的特性么? 答:Oracle连接,包括LEFT JONI和LEFT OUTERJO……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
问:我一直在对不同种类的Oracle连接做研究,目前还搞不清楚LEFT JOIN和LEFT OUTER JOIN之间有什么区别。Outer这个词是可选的么?因为Oracle中的LEFT JOIN是默认为OUTER JOIN的。如果是这样的话,我就不明白“INNER”和“OUTER”的用法了,因为显而易见INNER与JOIN或FULL JOIN一起使用从而产生两个表中所有的匹配(对于inner也是同样如此,对么?)。而OUTER可以和LEFT,RIGHT以及FULL一起使用。这些关键词的使用难道只是用来强调JOIN的特性么?
答:Oracle连接,包括LEFT JONI和LEFT OUTERJOIN,的确是会让人非常困惑的话题,对Oracle新手来说尤为如此。在这里我们来深入介绍一些关于Oracle连接的常见问题。
根据TechTarget的专家问答,Oracle中有三类OUTER JOIN -- 分别是LEFT,RIGHT和FULL。一个LEFT OUTER JOIN包含“左”表中的所有记录,即使它与在此连接中指定的“右”表并不存在任何匹配。一个RIGHT OUTER JOIN包含“右”表中的所有记录,即使它与在此连接中指定的“左”表并不存在任何匹配。而一个FULL OUTER JOIN则包含左右两表中的所有记录。
就像之前专家Karen Morton所说的一样,一个OUTER JOIN通过返回满足连接条件的记录,以及从一个没有记录满足其他连接条件的表返回某些或所有记录来扩展一个简单连接的结果。
社区用户cpflames解释说,关键词OUTER是可选的,但其实它应该是强制性的。他建议在Oracle中的OUTER JOINS要始终包含OUTER来提醒这是一个外连接。
对于JOIN来说,LEFT,RIGHT和FULL这几个关键词是强制性的。而LEFT,RIGHT和FULL OUTER JOINS是OUTER JOIN仅有的类型。
据cpflames解释,INNER JOIN意味着所有的结果记录是通过匹配两个表之间的某些条件产生的。一个OUTER JOIN会有某些时候并不匹配的结果记录,而是从一个表或是另外一个表亦或是从它们两个表返回没有匹配的结果记录。除了inner和outer还有另外一个连接类型,那就是CROSS JOIN。
作者
翻译
相关推荐
-
甲骨文自治数据库亮相 带来云计算新希望
早前甲骨文还不在云计算公司之列,而现在该公司正在迅速弥补其失去的时间。甲骨文的云计算核心是甲骨文自治数据库(O […]
-
2017年12月数据库流行度排行榜 定格岁末排名瞬间
数据库知识网站DB-engines最近更新的2017年12月份数据库流行度排名情况是否能提供更多的看点呢?TechTarget数据库网站将与您分享12月份的榜单排名情况,让我们拭目以待。
-
2017年11月数据库流行度排行榜 半数以上数据库积分减少
数据库知识网站DB-engines更新了2016年11月份的数据库流行度排行榜。TechTarget数据库网站将与您一同关注11月份的榜单排名情况。
-
控制合约 不再畏惧Oracle
许多公司都与Oracle有无限制授权协议,他们害怕离开这个协议,所以就证明他们在使用Oracle的软件,即使因为需求单独购买部分授权许可也可能总体是省钱的。