数据库面试
上一篇 /
下一篇 2010-04-14 12:45:03
/ 个人分类:数据库
join和full join有何区别?
在SQL中我们通常会用到两个表的联合查询,一般会用到inner join ,left join ,full join这几种类型,
他们的区别是什么呢 ,下面我就来介绍
例如有两个表,
表A1 表二A2
a1 b1 a2 b2
1 江苏 2 张山
2 湖北 3 李四
3 天津 4 王五
例如上面两个表A1和A2两个表的关联字段是a1==a2
如果这个语句查询出现的结果是
sql语句:select * from A1 as Ainner joinA2 as B on A.a1=B.a2
结果是:a1 b1 a2 b2
2 湖北 2 张山
3 天津 3 李四
二:如果用left join来关联两个表来查询则:
SQL语句:select * from A1 as Aleft joinA2 as B on A.a1=B.a2
结果是: a1 b1 a2 b2
1 江苏 NULL NULL
2 湖北 2 张山
3 天津 3 李四
三:如果是用full join来关联两个表来查询则:
SQL语句:select * from A1 as Afull joinA2 as B on A.a1=B.a2
则结果是: a1 b1 a2 b2
1 江苏 NULL NULL
2 湖北 2 张山
3 天津 3 李四
NULL NULL 4 王五
union和union all的区别
union过滤重复数据,union all直接返回结果集,不进行帅选
IN与exist的区别
in 是把外表和内表作hash join,而exists是对外表作loop,每次loop再对内表进行查询。
这样的话,in适合内外表都很大的情况,exists适合外表结果集很小的情况。
收藏
举报
TAG: