为了给两个表表达式列表的键连接生成连接条件,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 组合这些连接条件。
另请参见在有多个外键关系时的键连接。
![]() |
使用DocCommentXchange 讨论此页。
|
版权 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |