我遇到过一些我以前见过的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
答案 0 :(得分:1)
括号控制评估的逻辑顺序。对于内连接,括号无关紧要。需要更多考虑left join
。
我非常确定,对于仅left join
s的序列,括号无关紧要。问题是记录在某些表中但不是所有表中。在这两种情况下,最终记录集都基于" A"。在" B"中的任何表格并匹配" A"应该有来自" B"的列。同样," C"只有在匹配" A"和" B"。