在多个JOIN子句中,是否可以将所有ON子句移动到末尾?

时间:2016-06-20 15:32:25

标签: sql

例如,将表B和C各自作为表A的外键,是以下查询

SELECT A.a, B.b, C.c

FROM A INNER JOIN B on A.PK = B.FK
       INNER JOIN C on A.PK = C.FK

相当于这个

SELECT A.a, B.b, C.c

FROM A INNER JOIN B 
       INNER JOIN C on A.PK = C.FK
                    on A.PK = B.FK

我在查询中找到了第二种语法,而不是由我编写的,我必须要理解。 我用简单的示例数据尝试了两个查询,它们产生相同的记录集,但我需要知道它们是一般的还是仅在特定情况下。

而且,如果表C具有表B的外键,而表B又具有表A的外键,则是以下查询

SELECT A.a, B.b, C.c

FROM A INNER JOIN B on A.PK = B.FK
       INNER JOIN C on B.PK = C.FK

相当于

SELECT A.a, B.b, C.c

FROM A INNER JOIN B 
       INNER JOIN C on B.PK = C.FK
                    on A.PK = B.FK 

0 个答案:

没有答案