Oracle SQL语法左连接

时间:2018-03-05 23:43:29

标签: sql oracle

我遇到过一些我以前见过的Oracle sql语法(见下文)。我不完全确定TABLE2如何加入TABLE3。

SELECT A.FIELD, B.FIELD2, C.FIELD3
FROM 
TABLE1 A 
LEFT OUTER JOIN 
(TABLE2 B 
    LEFT OUTER JOIN TABLE3 C ON B.ID = C.ID and B.NAME = C.NAME ) 
ON 
A.ID = B.ID and A.NAME = B.NAME and A.BDATE = B.BDATE

上面的查询是否与:

相同
SELECT A.FIELD, B.FIELD2, C.FIELD3
FROM 
TABLE1 A 
LEFT JOIN TABLE2 B ON A.ID = B.ID and A.NAME = B.NAME and A.BDATE = B.BDATE
LEFT JOIN TABLE3 C ON B.ID = C.ID and B.NAME = C.NAME

1 个答案:

答案 0 :(得分:1)

括号控制评估的逻辑顺序。对于内连接,括号无关紧要。需要更多考虑left join

我非常确定,对于仅left join s的序列,括号无关紧要。问题是记录在某些表中但不是所有表中。在这两种情况下,最终记录集都基于" A"。在" B"中的任何表格并匹配" A"应该有来自" B"的列。同样," C"只有在匹配" A"和" B"。