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 的用法 » 查询和修改数据 » 连接:从多个表检索数据 » 键连接 » 表的表达式的键连接

 

表的表达式列表的键连接

为了给两个表表达式列表的键连接生成连接条件,SQL Anywhere 检查该语句中的表对,并为每对表生成一个连接条件。最终的连接条件是用于每一对的连接条件的联合。每对表之间必须是一个外键关系。

以下示例连接两个表对:A-C 和 B-C。

SELECT *
FROM ( A,B ) KEY JOIN C;

SQL Anywhere 通过为两个对 A-C 和 B-C 的每一对生成连接条件,生成一个连接 C 与 (A,B) 的连接条件。它根据存在多个外键关系时的键连接规则生成连接条件:

  • 对于每一对,SQL Anywhere 查找其角色名与主键表相关名相同的外键。如果正好只有一个外键满足此条件,则使用此外键。如果有多个外键关系,则认为该连接是不明确的,并且发出错误消息。

  • 对于每一对,如果没有与表的相关名同名的外键,则 SQL Anywhere 将查找这些表间的任何外键关系。如果只有一个外键关系,则使用此外键关系。如果有多个外键关系,则认为该连接是不明确的,并且发出错误消息。

  • 对于每一对,如果没有任何外键关系,则发出错误消息。

  • 如果 SQL Anywhere 能够为每一对确定恰好一个连接条件,则它使用 AND 组合这些连接条件。

另请参见在有多个外键关系时的键连接

 示例