2009-09-03 48 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