温习sql语句中JOIN的各种操作(SQL2005环境)
来源:互联网 发布:js 文本框中数值 合计 编辑:程序博客网 时间:2024/05/29 14:11
温习sql语句中JOIN的各种操作(SQL2005环境)
为了方便测试,先建二个基本表T_Employee(员工表),T_Region(地区表)
Sql语句如下:
CREATE TABLE [dbo].[T_Employee](
[ID] [int] NULL,
[Name] [nvarchar](50) NULL,
[RegionID] [int] NULL
) ON [PRIMARY]
CREATE TABLE [dbo].[T_Region](
[ID] [int] NULL,
[Name] [nvarchar](50) NULL
) ON [PRIMARY]
录入几条测试数据
T_Employee员工的测试数据:
ID Name RegionId
1 Jimmy 1
2 Rose 2
3 Tom 3
4 Mike 4
5 Unknown 9
6 Jessica 0
7 Mary -1
8 Janson 8
NULL ALLEmpty NULL
NULL Empty1 3
NULL Empty2 -2
9 Emplty3 NULL
T_Region地区表的测试数据:
ID Name
1 湖北省
2 上海市
3 广东省
4 山西省
5 杭州市
6 江西省
NULL 空地区
以下是各种测试的语句以及查询结果
1.[JOIN]
select
e.id as EmpId,
e.name as EmpName,
r.id as RegionId,
r.name as RegionName
from T_Employee as e JOIN T_Region as r ON e.regionId=r.Id
查询结果:
EmpId EmpName RegionId RegionName
1 Jimmy 1 湖北省
2 Rose 2 上海市
3 Tom 3 广东省
4 Mike 4 山西省
NULL Empty1 3 广东省
2.[INNER JOIN]
select
e.id as EmpId,
e.name as EmpName,
r.id as RegionId,
r.name as RegionName
from T_Employee as e INNER JOIN T_Region as r ON e.regionId=r.Id
查询结果:
EmpId EmpName RegionId RegionName
1 Jimmy 1 湖北省
2 Rose 2 上海市
3 Tom 3 广东省
4 Mike 4 山西省
NULL Empty1 3 广东省
与1.结果相同
3.[FULL JOIN]
select
e.id as EmpId,
e.name as EmpName,
r.id as RegionId,
r.name as RegionName
from T_Employee as e FULL JOIN T_Region as r ON e.regionId=r.Id
查询结果:
EmpId EmpName RegionId RegionName
1 Jimmy 1 湖北省
2 Rose 2 上海市
3 Tom 3 广东省
4 Mike 4 山西省
5 Unknown NULL NULL
6 Jessica NULL NULL
7 Mary NULL NULL
8 Janson NULL NULL
NULL ALLEmpty NULL NULL
NULL Empty1 3 广东省
NULL Empty2 NULL NULL
9 Emplty3 NULL NULL
NULL NULL 5 杭州市
NULL NULL 6 江西省
NULL NULL NULL 空地区
4.[FULL OUTER JOIN]
select
e.id as EmpId,
e.name as EmpName,
r.id as RegionId,
r.name as RegionName
from T_Employee as e FULL OUTER JOIN T_Region as r ON e.regionId=r.Id
查询结果:
EmpId EmpName RegionId RegionName
1 Jimmy 1 湖北省
2 Rose 2 上海市
3 Tom 3 广东省
4 Mike 4 山西省
5 Unknown NULL NULL
6 Jessica NULL NULL
7 Mary NULL NULL
8 Janson NULL NULL
NULL ALLEmpty NULL NULL
NULL Empty1 3 广东省
NULL Empty2 NULL NULL
9 Emplty3 NULL NULL
NULL NULL 5 杭州市
NULL NULL 6 江西省
NULL NULL NULL 空地区
与3.结果相同
4.[LEFT JOIN]
select
e.id as EmpId,
e.name as EmpName,
r.id as RegionId,
r.name as RegionName
from T_Employee as e LEFT JOIN T_Region as r ON e.regionId=r.Id
查询结果:
EmpId EmpName RegionId RegionName
1 Jimmy 1 湖北省
2 Rose 2 上海市
3 Tom 3 广东省
4 Mike 4 山西省
5 Unknown NULL NULL
6 Jessica NULL NULL
7 Mary NULL NULL
8 Janson NULL NULL
NULL ALLEmpty NULL NULL
NULL Empty1 3 广东省
NULL Empty2 NULL NULL
9 Emplty3 NULL NULL
5.[LEFT OUTER JOIN]
select
e.id as EmpId,
e.name as EmpName,
r.id as RegionId,
r.name as RegionName
from T_Employee as e LEFT OUTER JOIN T_Region as r ON e.regionId=r.Id
查询结果:
EmpId EmpName RegionId RegionName
1 Jimmy 1 湖北省
2 Rose 2 上海市
3 Tom 3 广东省
4 Mike 4 山西省
5 Unknown NULL NULL
6 Jessica NULL NULL
7 Mary NULL NULL
8 Janson NULL NULL
NULL ALLEmpty NULL NULL
NULL Empty1 3 广东省
NULL Empty2 NULL NULL
9 Emplty3 NULL NULL
与4.结果相同
6.[RIGHT JOIN]
select
e.id as EmpId,
e.name as EmpName,
r.id as RegionId,
r.name as RegionName
from T_Employee as e RIGHT JOIN T_Region as r ON e.regionId=r.Id
查询结果:
EmpId EmpName RegionId RegionName
1 Jimmy 1 湖北省
2 Rose 2 上海市
3 Tom 3 广东省
NULL Empty1 3 广东省
4 Mike 4 山西省
NULL NULL 5 杭州市
NULL NULL 6 江西省
NULL NULL NULL 空地区
7.[RIGHT OUTER JOIN]
select
e.id as EmpId,
e.name as EmpName,
r.id as RegionId,
r.name as RegionName
from T_Employee as e RIGHT OUTER JOIN T_Region as r ON e.regionId=r.Id
查询结果:
EmpId EmpName RegionId RegionName
1 Jimmy 1 湖北省
2 Rose 2 上海市
3 Tom 3 广东省
NULL Empty1 3 广东省
4 Mike 4 山西省
NULL NULL 5 杭州市
NULL NULL 6 江西省
NULL NULL NULL 空地区
与6.结果相同
8.[CROSS JOIN]
select
e.id as EmpId,
e.name as EmpName,
r.id as RegionId,
r.name as RegionName
from T_Employee as e CROSS JOIN T_Region as r
查询结果:
EmpId EmpName RegionId RegionName
1 Jimmy 1 湖北省
2 Rose 1 湖北省
3 Tom 1 湖北省
4 Mike 1 湖北省
5 Unknown 1 湖北省
6 Jessica 1 湖北省
7 Mary 1 湖北省
8 Janson 1 湖北省
NULL ALLEmpty 1 湖北省
NULL Empty1 1 湖北省
NULL Empty2 1 湖北省
9 Emplty3 1 湖北省
1 Jimmy 2 上海市
2 Rose 2 上海市
3 Tom 2 上海市
4 Mike 2 上海市
5 Unknown 2 上海市
6 Jessica 2 上海市
7 Mary 2 上海市
8 Janson 2 上海市
NULL ALLEmpty 2 上海市
NULL Empty1 2 上海市
NULL Empty2 2 上海市
9 Emplty3 2 上海市
1 Jimmy 3 广东省
2 Rose 3 广东省
3 Tom 3 广东省
4 Mike 3 广东省
5 Unknown 3 广东省
6 Jessica 3 广东省
7 Mary 3 广东省
8 Janson 3 广东省
NULL ALLEmpty 3 广东省
NULL Empty1 3 广东省
NULL Empty2 3 广东省
9 Emplty3 3 广东省
1 Jimmy 4 山西省
2 Rose 4 山西省
3 Tom 4 山西省
4 Mike 4 山西省
5 Unknown 4 山西省
6 Jessica 4 山西省
7 Mary 4 山西省
8 Janson 4 山西省
NULL ALLEmpty 4 山西省
NULL Empty1 4 山西省
NULL Empty2 4 山西省
9 Emplty3 4 山西省
1 Jimmy 5 杭州市
2 Rose 5 杭州市
3 Tom 5 杭州市
4 Mike 5 杭州市
5 Unknown 5 杭州市
6 Jessica 5 杭州市
7 Mary 5 杭州市
8 Janson 5 杭州市
NULL ALLEmpty 5 杭州市
NULL Empty1 5 杭州市
NULL Empty2 5 杭州市
9 Emplty3 5 杭州市
1 Jimmy 6 江西省
2 Rose 6 江西省
3 Tom 6 江西省
4 Mike 6 江西省
5 Unknown 6 江西省
6 Jessica 6 江西省
7 Mary 6 江西省
8 Janson 6 江西省
NULL ALLEmpty 6 江西省
NULL Empty1 6 江西省
NULL Empty2 6 江西省
9 Emplty3 6 江西省
1 Jimmy NULL 空地区
2 Rose NULL 空地区
3 Tom NULL 空地区
4 Mike NULL 空地区
5 Unknown NULL 空地区
6 Jessica NULL 空地区
7 Mary NULL 空地区
8 Janson NULL 空地区
NULL ALLEmpty NULL 空地区
NULL Empty1 NULL 空地区
NULL Empty2 NULL 空地区
9 Emplty3 NULL 空地区
- 温习sql语句中JOIN的各种操作(SQL2005环境)
- SQL语句各种JOIN的区别
- 图解析SQL语句中JOIN操作
- SQL中各种join的用法
- SQL中各种Join语句(left、right、full、inner)的区别
- sql语句中inner join,left join,right join,full join,cross join之间的区别
- sql的各种join
- SQL语句中JOIN的用法
- 小议SQL语句中JOIN的用法
- SQL语句中JOIN的用法
- SQL语句中JOIN的用法
- [转]SQL语句中JOIN的用法
- SQL语句中JOIN的用法
- sql语句中JOIN ON 的使用
- SQL语句中JOIN的用法
- sql语句中JOIN ON 的使用
- sql语句中left join、 inner join的使用
- SQL的JOIN语句
- c# webeditor的数据库应用总结 IDENTITY_INSERT
- Struts 1 学习笔记-5-2(编写一个简单的支持I18N的登录系统)
- Trac安装指南!
- 有容乃大,无欲则刚
- 软件商品化阶段开发流程的疑问
- 温习sql语句中JOIN的各种操作(SQL2005环境)
- test
- ArcGIS 坐标系统文件
- ArcGIS下进行数字化
- 重新安装OS,ORACLEL软件用RMAN恢复数据
- 从C/C++到C# (1)
- 点坐标生成其他要素类型的转换函数(arcDesktop)
- 关于地图投影坐标
- nat类型检测程序 vb.net分析