我現在正在處理PLSQL開發人員,這是我第一次。我覺得這種類型的查詢
PLSQL中的(+)函數
select * from tableA, tableB
where tableA.field1 = tableB.field1(+)
我想知道在查詢中(+)
的功能。你們可以善意解釋嗎?
我現在正在處理PLSQL開發人員,這是我第一次。我覺得這種類型的查詢
PLSQL中的(+)函數
select * from tableA, tableB
where tableA.field1 = tableB.field1(+)
我想知道在查詢中(+)
的功能。你們可以善意解釋嗎?
這是舊語法外連接,由Oracle通過,並取得冗餘時ANSI真正標準化的SQL語言。
有關詳細信息,請參閱Oracle文檔中的this entry。
這是Oracle SQL OUTER JOIN語法
它可以解釋爲
select * from tableA
OUTER JOIN tableB ON tableA.field1 = tableB.field1
從Oracle的文檔:
(+)指示前面的列是一個連接外部聯接柱。
可以用作
select * from tableA right outer join tableB where tableA.field1 = tableB.field1
(+)運算符表示它會從右邊表返回所有來自右表(匹配和非匹配)的行的兩行。 並從左表中返回匹配的行。
如果行與右表不匹配,則返回空值。
+
用於從表中檢索mathced和unmached記錄。
例如:
表A
和表B
,如果你使用的是像A.column1=B.column1(+)
從表A
retrives的unmached記錄和其稱爲左外連接。
這是一個LEFT OUTER甲骨文特定符號JOIN
例:
select ...
from a,b
where a.id=b.id(+)
查詢將被重寫
SELECT ...
FROM a
LEFT JOIN b ON b.id = a.id
+1呈現出更好的辦法 – 2012-04-17 22:32:01