首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql left outer join 跟 right outer join 和 full outer join 的区别

2012-08-31 
sql left outer join 和 right outer join 和 full outer join 的区别今天突然想到了以前去面试的时候一个

sql left outer join 和 right outer join 和 full outer join 的区别
今天突然想到了以前去面试的时候一个考官的问题:
请你讲一讲left outer join 和 right outer join 和 full outer join 的区别?
先说重要的
CROSS JOIN        笛卡尔乘积(所有可能的行对)
INNER JOIN        仅对满足连接条件的CROSS中的列
LEFT OUTER JOIN        一个表满足条件的行,和另一个表的所有行
RIGHT OUTER JOIN        与LEFT相同,但两个表的角色互换
FULL OUTER JOIN        LEFT OUTER 和 RIGHT OUTER中所有行的超集

下面看个例子:用sql 2005 来做例子
第一准备两张表 ta tb 表
ta表:

tb表:


ta表和tb表通过ta表中的fid和tb表中id关联
第二添加数据
ta表数据如下:

tb表数据如下:


第三我们使用left join 和 left outer join
select * from ta a left outer join tb b on a.fid = b.id

left join 和left outer join 我们看到的结果一样

第四我们使用right join 和 right outer join
select * from ta a right join tb b on a.fid = b.id


right join 和right outer join 我们看到的结果一样
第五我们看看full outer join 的结果
select * from ta a full outer join tb b on a.fid = b.id

如有什么错误请大家指出!





热点排行
Bad Request.