当前位置: 代码迷 >> SQL >> sql left outer join 跟 right outer join 和 full outer join 的区别
  详细解决方案

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

热度:94   发布时间:2016-05-05 13:57:45.0
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

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





  相关解决方案