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

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 查询和修改数据 » 连接:从多个表检索数据

 

键连接

许多常见的连接建立在两个由外键关联的表之间。最常见的连接限制外键值与主键值相等。KEY JOIN 运算符基于外键关系连接两个表。换句话说,SQL Anywhere 生成一个 ON 子句,该子句使一个表的主键列与另一个表的外键列相等。若要使用键连接,表和表之间必须有外键关系,否则将发出错误消息。

键连接可视为 ON 子句的快捷方式;这两个查询是相同的。但是,也可以将 ON 子句与 KEY JOIN 一起使用。当您指定了 JOIN 但未指定 CROSS、NATURAL、KEY 或使用 ON 子句时,缺省使用键连接。如果您查看 SQL Anywhere 示例数据库的图示,表之间的连线表示外键。您可以在图示中两个表通过连线连接的任何地方使用 KEY JOIN 运算符。有关 SQL Anywhere 示例数据库的详细信息,请参见教程:使用示例数据库

在键连接是缺省值时

在 SQL Anywhere 中,在满足以下所有条件时键连接是缺省值:

  • 使用关键字 JOIN。

  • 未指定关键字 CROSS、NATURAL 或 KEY。

  • 没有 ON 子句。

示例

例如,以下查询基于数据库中的外键关系连接表 Products 和表 SalesOrderItems。

SELECT *
FROM Products KEY JOIN SalesOrderItems;

下一个查询是等效的。它省去了 KEY 一词,但缺省情况下,没有 ON 子句的 JOIN 是 KEY JOIN。

SELECT *
FROM Products JOIN SalesOrderItems;

下面这个查询也是等效的,因为在 ON 子句中指定的连接条件正好与 SQL Anywhere 基于 SQL Anywhere 示例数据库中表的外键关系为这些表生成的连接条件相同。

SELECT *
FROM Products JOIN SalesOrderItems
ON SalesOrderItems.ProductID = Products.ID;

键连接与 ON 子句一起使用
在有多个外键关系时的键连接
表的表达式的键连接
视图和派生表的键连接
描述键连接的操作的规则