大象怒怒的小脚


没有终了漂泊,于是成了树上的精灵.有梦想,却不会飞翔.用自己短短的羽翼,跳跃在迷离的枝头……

首页 新随笔 联系 订阅 管理
内连接:
对于内连接(或简单表连接),只在结果中包含根据连接谓词所匹配的行。因此,没有包含那些不匹配的行

外 连接的 FROM 子句中的表可以被分类成保留行(preserved row)表或者替换NULL(NULL-supplying)的表。保留行表是指那些在连接操作中没有匹配的内容时,把行保留下来的表。因此,将返回保留 行表中所有满足WHERE 子句要求的行,无论在连接中是否存在匹配的行
保留行表是:
左外连接中左边的表
右外连接中右边的表
全外连接中全部的表

当不存在匹配的行时,替换 NULL 的表替换 NULL。如果连接操作中不存在匹配,任何在 SELECT 列表或者随后的 WHERE 或者 ON 子句中引用的替换 NULL 的表中的列都将包含 NULL。
替换 NULL 的表是:
左外连接中右边的表
右外连接中左边的表
全外连接中全部的表

在全外连接中,两张表既可以保留行,也可以替换 NULL。这一点非常重要,因为有些规则适用于纯粹的保留行表,但是如果该表也替换 NULL,则会变得不适用
在 FROM 子句中编写表的顺序对于左外连接、右外连接以及涉及两张表以上的连接极端重要,因为当连接中存在不匹配的行时,保留行表和替换 NULL 的表的表现不同

左外连接
左外连接返回那些存在于左表而右表中却没有的行,加上内连接的行。那些来自保留行表的未匹配行会被保留,而那些来自替换 NULL 的表中的行会以 NULL 替换。也就是说,当行与右边的表不匹配时.将从 右表以 NULL 替换作为 列 的值

右外连接
右外连接返回那些存在于右表而左表中没有的行,加上内连接的行。那些来自保留行表的未匹配行会被保留,而那些来自替换 NULL 的表中的行会由 NULL 替换。
对于右外连接,右表会成为保留行表,而左表会成为替换 NULL 的表。

全外连接
全外连接返回那些存在于右表但不存在于左表的行,加上那些存在于左表但不存在于右表的行,还有内连接的行。这两张表既替换 NULL,也保留行。

posted on 2005-11-08 11:14  大象怒怒  阅读(534)  评论(0编辑  收藏  举报