2012-04-13 607 views
4

我現在正在處理PLSQL開發人員,這是我第一次。我覺得這種類型的查詢

PLSQL中的(+)函數

select * from tableA, tableB 
where tableA.field1 = tableB.field1(+) 

我想知道在查詢中(+)的功能。你們可以善意解釋嗎?

回答

4

這是舊語法外連接,由Oracle通過,並取得冗餘時ANSI真正標準化的SQL語言。

有關詳細信息,請參閱Oracle文檔中的this entry

4

這是Oracle SQL OUTER JOIN語法

它可以解釋爲

select * from tableA 
OUTER JOIN tableB ON tableA.field1 = tableB.field1 
+0

+1呈現出更好的辦法 – 2012-04-17 22:32:01

2

從Oracle的文檔:

(+)指示前面的列是一個連接外部聯接柱。

1

可以用作

select * from tableA right outer join tableB where tableA.field1 = tableB.field1 

(+)運算符表示它會從右邊表返回所有來自右表(匹配和非匹配)的行的兩行。 並從左表中返回匹配的行。
如果行與右表不匹配,則返回空值。

1

+用於從表中檢索mathced和unmached記錄。

例如:

A和表B

,如果你使用的是像A.column1=B.column1(+)

從表A retrives的unmached記錄和其稱爲左外連接。

0

這是一個LEFT OUTER甲骨文特定符號JOIN

例:

select ... 
from a,b 
where a.id=b.id(+) 

查詢將被重寫

SELECT ... 
    FROM a 
LEFT JOIN b ON b.id = a.id