2012-10-04 48 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'完全相同,无论按照何种顺序编写'='条件都没有区别。 –