PL/SQL使用多个左连接

4 L*_*ver 14 sql oracle

SELECT * FROM Table A LEFT JOIN TABLE B LEFT JOIN TABLE C
Run Code Online (Sandbox Code Playgroud)

从上面的代码片段,表C将连接到(表B)或(表A LEFT JOIN表B中的数据)或(表A)?

Flo*_*ita 13

表C将连接到1.(表B)或2.(表A左边连接表B中的数据)或3.(表A)?

第二.但加入法则将帮助您了解更多.

你可以写:

SELECT * 
FROM Table A 
LEFT JOIN TABLE B ON (A.id = B.id)
LEFT JOIN TABLE C ON (A.ID = C.ID)
Run Code Online (Sandbox Code Playgroud)

但你能够:

SELECT * 
FROM Table A 
LEFT JOIN TABLE B ON (A.id = B.id)
LEFT JOIN TABLE C ON (A.id = C.id and B.code = C.code)
Run Code Online (Sandbox Code Playgroud)

因此,您可以加入前一个表中的每个字段,然后加入前一个连接的"结果"(尽管引擎可以选择它获取结果的方式).

在左连接处认为是非可交换操作(与之A left join B不同B left jon A)因此,顺序很重要,C将在之前的连接表中保持连接.