【发布时间】:2017-06-22 11:41:18
【问题描述】:
我看到了这个连接,我想知道这个语法是从哪里来的。
SELECT *
FROM [dbo].[AA]
INNER JOIN dbo.BB
INNER JOIN dbo.CC ON BB.ID = CC.BB_ID
ON AA.ID = BB.AA_ID
奇怪的是,我只能在第一个 ON 子句中引用表 BB 和 CC 而不能引用表 AA。
通常我先记下表名,然后记下连接条件。
SELECT *
FROM [dbo].[AA]
INNER JOIN dbo.BB ON AA.ID = BB.AA_ID
INNER JOIN dbo.CC ON BB.ID = CC.BB_ID
我的问题是第一个语法的背景是什么,是否对执行有任何影响,到目前为止我还没有看到。
【问题讨论】:
-
这是一种糟糕的连接方式——就像有人不使用 ON 子句而是将所有内容都放在 WHERE 子句中一样。
标签: sql sql-server tsql relational-database