首页 > 代码库 > 联接——外联接

联接——外联接

与内联接和交叉联接不同,外联接是在ANSI SQL-92 中才被引入的,因此它只有一种标准语法——在表名之间指定JOIN关键字,在ON子句中指定联接条件。外联接会应用内联接所应用的两个逻辑处理步骤(笛卡尔积和ON过滤),此外还多加一个外联接特有的第三步:添加外部行。

在外联接中,要把一个表标记为“保留的”表,可以在表名之羊使用关键字LEFT OUTER JOIN、RIGHT OUTER JOIN、以及FULL OUTER JOIN,其中 OUTER 关键字是可选的。LEFT关键字表示左边表的行是保留的,RIGHT关键字表壳右边表的行是保留的,而FULL关键字则表示左右两边表的行都是保留的。

外联接的第三个逻辑查询处理步骤就是要识别保留表中按照ON条件在另一个表找不到与之匹配的那些行,再把这些行添加到联接的前两个步骤生成的结果表中;对于来自联接的非保留表的那些列,追加的外部行中的这些列则用NULL 作为占位符。