Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 查询和修改数据 » 连接:从多个表检索数据 » 显式连接条件(ON 子句)

 

在 ON 子句中引用表

在 ON 子句中引用的表必须是 ON 子句修饰的连接的一部分。例如,以下语句无效:

FROM ( A KEY JOIN B ) JOIN ( C JOIN D ON A.x = C.x )

问题在于:连接条件 A.x = C.x 引用表 A,而表 A 不是该连接条件修饰的连接(在此示例中为 C JOIN D)的一部分。

但是,从 ANSI/ISO 标准 SQL99 和 Adaptive Server Anywhere 7.0 开始,此规则有一个例外:如果您在表表达式之间使用逗号,则连接的 ON 条件可以引用 FROM 子句中在语法上位于该条件前面的表。因此,以下语句是有效的:

FROM (A KEY JOIN B) , (C JOIN D ON A.x = C.x)

另请参见: 键连接.

有关逗号的详细信息,请参见逗号

 示例