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 子句

如果使用 JOIN 关键字并且没有指定任何连接类型,则键连接是缺省设置—除非您使用 ON 子句。如果您将 ON 子句与未指定类型的 JOIN 一起使用,则缺省不是键连接,也没有其它生成的连接条件。

例如,以下是键连接,因为在使用 JOIN 关键字并且没有 ON 子句时键连接是缺省设置:

SELECT *
FROM A JOIN B;

以下是表 A 和表 B 之间的连接,并且具有连接条件 A.x = B.y。它不是键连接。

SELECT *
FROM A JOIN B ON A.x = B.y;

如果您指定 KEY JOIN 或 NATURAL JOIN 并且使用 ON 子句,则最终的连接条件是生成的连接条件与显式连接条件的联合。例如,以下语句有两个连接条件:一个由键连接生成的连接条件和一个在 ON 子句中显式指定的连接条件。

SELECT *
FROM A KEY JOIN B ON A.x = B.y;

如果由键连接生成的连接条件是 A.w = B.z,则以下语句是等效的:

SELECT *
FROM A JOIN B
  ON A.x = B.y
  AND A.w = B.z;

有关键连接的详细信息,请参见键连接