外连接(转)

 

外连接则扩充了内连接的功能,会把内连接中删除表源中的一些保留下来,由于保留下来的行不同,把外连接分为左外连接、右外连接和全外连接这3种连接。

1.左外连接

左外连接保留了第一个表的所有行,但只包含第二个表与第一表匹配的行。第二个表相应的空行被放入NULL值。

左外连接的语法:

use student

SELECT fieldlist

FROM table1 left join table2

ON table1.column=table2.column

下面把“student”表和“grade”表左外连接,第一个表“student”有不满足连接条件的行。在查询分析器中输入的SQL语句如下:

use student

select *

from student

left join grade

on student.学号=grade.学号

实现的过程如图1所示。

2.右外连接

右外连接保留了第二个表的所有行,但只包含第一个表与第二个表匹配的行。第一个表相应空行被入NULL值。

图1 左外连接

右外连接的语法:

use student

SELECT fieldlist

FROM table1 right join table2

ON table1.column=table2.column

下面把“grade”表和“course”表右外连接,第二个表“course”有不满足连接条件的行。在查询分析器中输入的SQL语句如下:

use student

select *

from grade

right join course

on course.课程代号=grade.课程代号

实现的过程如图2所示。

图2 右外连接

3.全外连接

全外连接会把两个表所有的行都显示在结果表中。

全外连接的语法:

use student

SELECT fieldlist

FROM table1 full join table2

ON table1.column=table2.column

把“grade”表和“course”表实现全连接,两个表都有不满足连接条件的行。在查询分析器中输入的SQL语句如下:

use student

select * from

grade full

join course

on course.课程代号=grade.课程代号

实现的过程如图3所示。

图3 全外连接

posted @ 2009-08-17 10:17  pursue  阅读(113)  评论(0)    收藏  举报