2013-08-20 23 views
0

我只是偶然發現了一個使用(+)的SQL +查詢。我以前從來沒有使用過SQL +,我從來沒有見過這樣的事情。我試着問谷歌這件事,但我無法找到任何有用的,因爲谷歌顯然過濾「(+)」,只是忽略它...SQLPlus中的(+)含義是什麼?

例子:

[...] 
where [...] 
    AND 16791688 = T7mm.child_fielddef_id (+) 
    AND T7mm.parent_dbid = T7.dbid (+) 
    AND T1.dbid <> 0 [...] 
+0

查看關於連接的Oracle文檔 – Mark

+1

我建議使用http://symbolhound.com/來搜索類似的東西, ](http://symbolhound.com/?q=%28%2B%29+oracle) – Habib

+0

@ConradFrix可能,儘管我在SO上搜索它並沒有發現這個問題。感謝您的啓發:) – Vince

回答

4

它是一個Oracle爲OUTER JOIN

+0

hmmmm ...雖然'(+)'是用於外部連接,我不會將它描述爲* shortcut *在這個詞的正常意義上,即它的語法不同,它不能簡單地用來代替'OUTER JOIN'。 –

3

它使加入一個外連接,而不是一個內特定快捷加入:

SELECT 
    A.*, 
    B.* 
FROM 
    A, 
    B 
WHERE 
    A.ID = B.ID(+) 

相當於:

SELECT 
    A.*, 
    B.* 
FROM 
    A 
    LEFT JOIN B ON A.ID = B.ID 

(+)符號是SQL查詢的舊Oracle語法。現在它通常被認爲是使用ANSI標準的LEFT JOIN關鍵字的最佳實踐,而不是