让我清楚地了解 Oracle 9i 中的外部联接

Posted

技术标签:

【中文标题】让我清楚地了解 Oracle 9i 中的外部联接【英文标题】:Get me the clear picture of outer joins in Oracle 9i 【发布时间】:2011-04-07 03:49:50 【问题描述】:

在我看来,外部连接有点令人困惑。

有没有人可以让我清楚地了解外部连接右、左和完整)?

【问题讨论】:

【参考方案1】:

原始问题/答案:https://***.com/questions/3308122/how-do-i-decide-when-to-use-right-join-left-join-or-inner-join-or-how-to-deter/3308153#3308153

阅读The Code Project 上的这篇原创文章会对您有很大帮助:Visual Representation of SQL Joins。

【讨论】:

非常感谢 Pranay。图表真的很有帮助:-))【参考方案2】:

Wikipedia article about Joins 应该可以帮助您。

Oracle 外连接的特别之处在于使用 (+) 的旧符号,但现在已经过时了。

【讨论】:

【参考方案3】:

我一直这么认为的方式是:

LEFT JOIN - keeps all rows selected on the left  
RIGHT JOIN - keeps all rows selected on the right  
FULL JOIN - keeps all rows selected on both sides  

易于记在脑海中,无需访问***或绘制图表。

附: Oracle 死亡 + 连接语法!

【讨论】:

【参考方案4】:

我从不喜欢@Pranay Rana 的回答中使用的那些经常看到的图片。它们显示集合操作但不显示连接。比如上面中间的图片是A union B,左边中间的图片是A except B(或者我想Oracle是A minus B)等等。

还要考虑到关系模型中不存在 null,因此无论如何您都无法使用维恩图来绘制它! ;)

我认为不使用表格(例如this one)就无法绘制外连接图。

【讨论】:

以上是关于让我清楚地了解 Oracle 9i 中的外部联接的主要内容,如果未能解决你的问题,请参考以下文章

help:有没有好方法在ABAP中读取外部数据库,如SQLSERVER等?

Oracle外部表详解

windows中怎样用oracle驱动连数据库

如何在 >2 个表上进行外部联接 (Oracle)

Oracle View 与 Oracle 中的联接表

如何在 oracle 9i 中最好地拆分 csv 字符串