我想知道是否:
select *
from tableA natural join tableB,tableC natural join tableD;
相当于:
select *
from (((tableA natural join tableB),tableC),tableD) natural join tableD;
from子句是否为左关联?
答案 0 :(得分:1)
我相信它等同于:
select *
from (tableA natural join TableB) cross join
(tableC natural join TableD)
这基于documentation:
以前,逗号运算符(,)和JOIN都有相同的含义 优先级,因此连接表达式t1,t2 JOIN t3被解释为 ((t1,t2)JOIN t3)。现在JOIN具有更高的优先级,所以表达式 被解释为(t1,(t2 JOIN t3))。此更改会影响语句 使用ON子句,因为该子句只能引用列 在连接的操作数中,优先级的变化会发生变化 解释这些操作数是什么。