您的位置:首页 > 数据库

sql内外连接查询的区别

2013-12-22 18:14 274 查看
a表

name sex

张三 男

李四 女

b表

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\交叉-------------------------------------------------------特别注意 ,这里的是先查到结果然后根据结果去用where去筛选

select a.name,a.sex,b.name,b.age

from   a cross join //////////////////////////b where a.name=b.name

结果如下

name sex name age

张三 男 李四 30

李四 女 王五 23

张三 男 王五 23

李四 女 李四 3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: