2012-10-04 77 views
2

如果我有兩個表(A和B)在col'id'上連接,並且我想從B獲取所有記錄而不管B中的相應記錄,我知道我可以這樣做:3個表的Oracle外連接

select * from A left outer join B on A.id = B.id; 

現在我有3個表A,B,C A被連接到B和B被連接到C. 我想從是否存在在B或C. 一個記錄A無關的所有記錄所以我應該寫 select * from A left outer join B on A.id = B.id and(....現在我在這裏寫什麼) 即使使用舊的語法,我卡: select * from A,B,C where A.id = B.id(+) and B.id1 = C.id1(+)(不知何故,這似乎不對)

回答

7
select * 
from A 
    left outer join B on A.id = B.id 
    left outer join C on C.id = B.id 
+0

謝謝你。你能告訴我如何用舊的語法來寫(只是爲了我的知識)? – Victor

+0

另外,如果第二個條件不是:在B.id = C.id上留下外部連接C? – Victor

+1

@Kaushik:不要使用舊的語法。 'B.id = C.id'與'C.id = B.id'完全相同,無論按照何種順序編寫'='條件都沒有區別。 –