Oracle SQL语法左连接

问题描述 投票:0回答:1

我遇到过一些我之前从未见过的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
sql oracle
1个回答
1
投票

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

我很确定,对于一系列只有left joins,括号无关紧要。问题是记录在某些表中但不是所有表中。在这两种情况下,最终记录集都基于“A”。 “B”中的任何表和匹配“A”的表都应该有来自“B”的列。类似地,只有“C”与“A”和“B”都匹配时才会出现“C”。

© www.soinside.com 2019 - 2024. All rights reserved.