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

SQL Anywhere 12.0.1 » SQL Anywhere 服务器 - SQL 的用法 » 查询和修改数据 » 连接:从多个表检索数据 » 连接的工作原理

 

连接两个以上的表

使用 SQL Anywhere,对您可以连接的表的数目没有固定限制。

在连接两个以上的表时,可以选择使用括号。如果您没有使用括号,SQL Anywhere 会按从左到右的顺序计算语句的值。因此,A JOIN B JOIN C 等效于 ( A JOIN B ) JOIN C。同样,下面的两个 SELECT 语句是等效的:

SELECT *
FROM A JOIN B JOIN C JOIN D;
SELECT *
FROM ( ( A JOIN B ) JOIN C ) JOIN D;

只要连接两个以上的表,连接就会涉及表表达式。在 A JOIN B JOIN C 示例中,将表表达式 A JOIN B 连接到表 C。这意味着,从理论上讲,首先连接表 A 和表 B,然后结果被连接到 C。

如果表表达式中包含外连接,则连接的顺序是十分重要的。例如,A JOIN B LEFT OUTER JOIN C 被解释为 (A JOIN B) LEFT OUTER JOIN C。这意味着表表达式 A JOIN B 被连接到表 C。表表达式 A JOIN B 是保留的,表 C 是提供空值的。

 另请参见