欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

T-SQL JOIN

程序员文章站 2024-02-09 19:53:52
...

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,

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
3 右联接
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
4 内联接
select a.name,a.sex,b.name,b.age
from a inner join b on a.name=b.name
结果如下
name sex name age
李四 女 李四 30
5 交叉联接(笛卡尔乘积)
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
李四 女 李四 30

相关标签: T-SQL JOIN