SQL Anywhere 支持以下几类连接表。
交叉连接 两个表的这种连接类型生成来自这两个表的各行的所有可能组合。结果集的规模是第一个表中的行数乘以第二个表中的行数。交叉连接也称作矢量积或笛卡儿积。您不能将 ON 子句与交叉连接一起使用。
键连接 这种类型的连接条件使用各表间的外键关系。如果使用 JOIN 关键字时未指定连接类型(如 INNER、OUTER 等),并且没有 ON 子句,则缺省是键连接。
自然连接 此连接是基于具有相同名称的列自动生成的。
使用 ON 子句连接 此类型的连接由 ON 子句中的连接条件的显式说明产生。在与键连接或自然连接一起使用时,该连接条件既包含生成的连接条件,也包含显式连接条件。在与 JOIN 关键字一起使用(但不与 KEY 或 NATURAL 关键字一起使用)时,没有生成的连接条件。请参见显式连接条件(ON 子句)。
可以通过指定 INNER、LEFT OUTER、RIGHT OUTER 或 FULL OUTER 对键连接、自然连接和使用 ON 子句的连接加以限定。缺省值是 INNER。在使用关键字 LEFT、RIGHT 或 FULL 时,关键字 OUTER 是可选的。
在内连接中,结果中的每一行都满足连接条件。
在左外连接或右外连接中,为一个表保留所有行,为另一个表不满足连接条件的行返回空值。例如,在右外连接中,保留右侧表的所有行,左侧的用空值补充。
在完全外连接中,保留这两个表的所有行;并且为不满足连接条件的行提供空值。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |