SQL中full join、inner join、left join、right join、cross join之间的区别

SQL中full join、inner join、left join、right join、cross join之间的区别
 
举个例子你就能知道了!
     A表         B表
name sex   name      age
张三   李四 30
李四   王五 23
 
 
1\全外连接
select a.name,a.sex,b.name,b.age
from   a full outer join  b on a.name=b.name
结果如下,
name sex name age
张三 男 NULL NULL
李四 女 李四 30
NULL NULL 王五 23
关联字段name,左表有而右表没有的,如张三,b.name,b.age都为NULL,加上左右两边都有的就是左连接的结果;而右表有而左表表没有的,如王五,a.name,a.sex都为NULL,加上左右两边都有的就是右连接的结果;左右两边都有的如,李四,这就是内连接。相见如下
2\左
select a.name,a.sex,b.name,b.age
from   a left outer join  b on a.name=b.name
结果如下
name sex name age
张三 男 NULL NULL
李四 女 李四 30
2\右
select a.name,a.sex,b.name,b.age
from   a right outer join  b on a.name=b.name
结果如下
name sex name age
李四 女 李四 30
NULL NULL 王五 23
3\内联
select a.name,a.sex,b.name,b.age
from   a inner join  b on a.name=b.name
结果如下
name sex name age
李四 女 李四 30
4\交叉
select a.name,a.sex,b.name,b.age
from   a cross join  b on a.name=b.name
结果如下
name sex name age
张三 男 李四 30
李四 女 王五 23
张三 男 王五 23
李四 女 李四 30
posted @ 2013-08-08 10:49  王家悦  阅读(324)  评论(0)    收藏  举报