0

我想知道这是否:

select *
from tableA natural join tableB,tableC natural join tableD;

相当于:

select *
from (((tableA natural join tableB),tableC),tableD) natural join tableD;

from 子句是左结合的吗?

4

1 回答 1

1

我相信它相当于:

select *
from (tableA natural join TableB) cross join
     (tableC natural join TableD)

这是基于文档

以前,逗号运算符 (,) 和 JOIN 的优先级相同,因此连接表达式 t1, t2 JOIN t3 被解释为 ((t1, t2) JOIN t3)。现在 JOIN 具有更高的优先级,因此表达式被解释为 (t1, (t2 JOIN t3))。此更改会影响使用 ON 子句的语句,因为该子句只能引用连接操作数中的列,并且优先级的更改会更改对这些操作数的解释。

于 2013-03-21T17:37:40.547 回答