2009-09-03 46 views
5

我正在使用Oracle SQL Developer查询Oracle数据库(不确定它是哪个版本),我将使用我为Crystal报表制作的SQL。许多以前的开发人员编写的报告都没有使用JOIN关键字来进行连接(并且我不太熟悉JOIN关键字)。Oracle SQL中的(+)做什么?

他们所做的许多连接都是在WHERE语句中进行的。我会注意到这样的事情。

Select * From TableA, TableB WHERE TableA.PrimaryKey(+) = TableB.ForeignKey 

我的问题是关于(+)。它的用途是什么?我如何在代码中使用它?

回答

8

这代表着一个“右外连接”(正确的,因为在=是在+的右侧)。

SELECT * 
FROM TableA, TableB 
WHERE TableA.PrimaryKey(+) = TableB.ForeignKey 

相当于

SELECT * 
FROM TableA 
RIGHT OUTER JOIN TableB 
    ON (TableA.PrimaryKey = TableB.ForeignKey) 
0

(+),用于执行右外连接在甲骨文 RIGHT OUTER JOIN是连接操作,允许你指定一个JOIN子句 详细的一个 http://docs.oracle.com/javadb/10.8.3.0/ref/rrefsqlj57522.html

+1

您发布IST链接** **不为Oracle数据库它是** ** JavaDB之外(又名“德比”) – 2015-03-20 11:08:30

+0

我添加了注释,以得到一个什么样右外连接是明确的想法 – 2015-03-20 11:09:59