1.向TI,T2插入数据:

T1  7条

ID Field2 Field3 Field4
1 1 3 54
2 1 3 54
3 1 3 54
4 2 3 54
5 3 3 54
6 4 3 54
7 5 3 54

T2  7条

IDField22Field23

1133

2133

3133

4133

5233

6333

7   9   33

2.测试left join

select ROW_NUMBER()over (order by t1.id,t2.id) as row_num,* from dbo.T1 left join dbo.T2 on t1.Field2=t2.Field22

row_numIDField2Field3Field4IDField22Field23

1113541133

2113542133

3113543133

4113544133

5213541133

6213542133

7213543133

8213544133

9313541133

10313542133

11313543133

12313544133

13423545233

14533546333

NULLNULLNULL

NULLNULLNULL

3.测试right join

select ROW_NUMBER()over (order by t1.id,t2.id) as row_num,* from dbo.T1 right join dbo.T2 on t1.Field2=t2.Field22

row_numIDField2Field3Field4IDField22Field23

2113541133

3113542133

4113543133

5113544133

6213541133

7213542133

8213543133

9213544133

10313541133

11313542133

12313543133

13313544133

14423545233

15533546333

4.测试join

select ROW_NUMBER()over (order by t1.id,t2.id) as row_num,* from dbo.T1 join dbo.T2 on t1.Field2=t2.Field22

row_numIDField2Field3Field4IDField22Field23

1113541133

2113542133

3113543133

4113544133

5213541133

6213542133

7213543133

8213544133

9313541133

10313542133

11313543133

12313544133

13423545233

14533546333

5.测试inner join

select ROW_NUMBER()over (order by t1.id,t2.id) as row_num,* from dbo.T1 inner join dbo.T2 on t1.Field2=t2.Field22

row_numIDField2Field3Field4IDField22Field23

1113541133

2113542133

3113543133

4113544133

5213541133

6213542133

7213543133

8213544133

9313541133

10313542133

11313543133

12313544133

13423545233

14533546333

6.测试cross join

select ROW_NUMBER()over (order by t1.id,t2.id) as row_num,* from dbo.T1 cross join dbo.T2 on t1.Field2=t2.Field22

消息156,级别15,状态1,第1 行

关键字'on' 附近有语法错误。

select ROW_NUMBER()over (order by t1.id,t2.id) as row_num,* from dbo.T1 cross join dbo.T2

row_numIDField2Field3Field4IDField22Field23

1113541133

2113542133

3113543133

4113544133

5113545233

6113546333

7113548933

8213541133

9213542133

10213543133

11213544133

12213545233

13213546333

14213548933

15313541133

16313542133

17313543133

18313544133

19313545233

20313546333

21313548933

22423541133

23423542133

24423543133

25423544133

26423545233

27423546333

28423548933

29533541133

30533542133

31533543133

32533544133

33533545233

34533546333

35533548933

36643541133

37643542133

38643543133

39643544133

40643545233

41643546333

42643548933

43753541133

44753542133

45753543133

46753544133

47753545233

48753546333

49753548933

7.测试unoin

select * from dbo.T1 union all select * from dbo.T2

消息205,级别16,状态1,第1 行

使用UNION、INTERSECT 或EXCEPT 运算符合并的所有查询必须在其目标列表中有相同数目的表达式。

select Field2 from dbo.T1 union all select Field22 from dbo.T2

Field2

1

1

1

2

3

4

5

1

1

1

1

2

3

9

with T3 as

( select Field2 from dbo.T1 union all select Field22 from dbo.T2 )

select ROW_NUMBER() over (order by T3.field2) as row_num,* from T3

row_numField2

11

21

31

41

51

61

71

82

92

103

113

124

135

149

8.生成数据库的脚本

USE [Demo]

GO

/****** Object:  Table [dbo].[T1]    Script Date: 09/27/2013 23:19:29 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[T1](

) NOT NULL,

[Field2] [int] NULL,

[Field3] [int] NULL,

[Field4] [int] NULL,

CONSTRAINT [PK_T1] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

USE [Demo]

GO

/****** Object:  Table [dbo].[T2]    Script Date: 09/27/2013 23:19:53 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[T2](

) NOT NULL,

[Field22] [int] NOT NULL,

[Field23] [int] NOT NULL,

CONSTRAINT [PK_T2] PRIMARY KEY CLUSTERED

(

[ID] ASC

)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

) ON [PRIMARY]

GO

delete from dbo.T1

truncate table dbo.T2

select * from  T1

select * from  T2

)

)

)

)

)

)

)

truncate table dbo.T2

)

)

)

)

)

)

)

)

select ROW_NUMBER()over (order by t1.id,t2.id) as row_num,* from dbo.T1 left join dbo.T2 on t1.Field2=t2.Field22

select ROW_NUMBER()over (order by t1.id,t2.id) as row_num,* from dbo.T1 right join dbo.T2 on t1.Field2=t2.Field22

select ROW_NUMBER()over (order by t1.id,t2.id) as row_num,* from dbo.T1 join dbo.T2 on t1.Field2=t2.Field22

select ROW_NUMBER()over (order by t1.id,t2.id) as row_num,* from dbo.T1 inner join dbo.T2 on t1.Field2=t2.Field22

select ROW_NUMBER()over (order by t1.id,t2.id) as row_num,* from dbo.T1 cross join dbo.T2 on t1.Field2=t2.Field22

select ROW_NUMBER()over (order by t1.id,t2.id) as row_num,* from dbo.T1 cross join dbo.T2

select * from dbo.T1 union all select * from dbo.T2

select Field2 from dbo.T1 union all select Field22 from dbo.T2

with T3 as

( select Field2 from dbo.T1 union all select Field22 from dbo.T2 )

select ROW_NUMBER() over (order by T3.field2) as row_num,* from T3

用实例展示left Join,right join,inner join,join,cross join,union 的区别的更多相关文章

  1. T-SQL 中的CROSS JOIN用法(半翻译)

    突然发现个很吊的链接,我们来看看学习数据库要做些什么,胆小慎点:DBA工作内容!!!! 今天来翻译一篇关于T-SQL的文章,本文可供微软认证70-461:QueryingMicrosoft SQL S ...

  2. 高级T-SQL进阶系列 (一)【下篇】:使用 CROSS JOIN 介绍高级T-SQL

    [译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正] 原文链接:传送门. 性能考虑产生了笛卡尔积的这个CROSS JOIN操作符具有一些性能方面的问题需要考虑.因为SQL引擎需要将一个数 ...

  3. SQL CROSS JOIN

    最近在讲到T-SQL查询的Join部分时,一下子没有想起来CROSS JOIN的用法,因为其实平常也确实基本不用到.特意找了一个例子,以供参考 CROSS JOIN又称为笛卡尔乘积,实际上是把两个表乘 ...

  4. CROSS JOIN

    原文:CROSS JOIN 最近在讲到T-SQL查询的Join部分时,一下子没有想起来CROSS JOIN的用法,因为其实平常也确实基本不用到.特意找了一个例子,以供参考 CROSS JOIN又称为笛 ...

  5. MySQL应用之CROSS JOIN用法简介教程

    目录 2. cross join用法 @ 本博客翻译自两篇博客的: http://www.mysqltutorial.org/mysql-cross-join/ https://www.w3resou ...

  6. 通俗易懂的join、left join、right join、full join、cross join

    内连接:列出与连接条件匹配的数据行(join\inner join) 外连接:两表合并,如有不相同的列,另外一个表显示null(left join\right join\full outer join ...

  7. 内连接、左外连接、右外连接、全外连接、交叉连接(CROSS JOIN)-----小知识解决大数据攻略

    早就听说了内连接与外连接,以前视图中使用过.这次自考也学习了,只是简单理解,现在深入探究学习(由于上篇博客的出现)与实践: 概念 关键字: 左右连接 数据表的连接有: 1.内连接(自然连接): 只有两 ...

  8. 【数据库】left join(左关联)、right join(右关联)、inner join(自关联)的区别

    left join(左关联).right join(右关联).inner join(自关联)的区别 用一张图说明三者的区别: 总结: left join(左联接) 返回包括左表中的所有记录和右表中关联 ...

  9. Python之路(第四十二篇)线程相关的其他方法、join()、Thread类的start()和run()方法的区别、守护线程

    一.线程相关的其他方法 Thread实例对象的方法 # isAlive(): 返回线程是否活动的. # getName(): 返回线程名. # setName(): 设置线程名. ​ threadin ...

随机推荐

  1. 只用css实现“每列四行,加载完一列后数据自动填充到下一列”的效果

    只用css实现“每列四行,加载完一列后数据自动填充到下一列”的效果.这个题目用图表示如下: 如果将题目换成“只用css实现每行四列,加载完一行后数据自动填充到下一行”,那这个问题就简单多了,相信大家都 ...

  2. java 中常见异常

    1. Java.lang.NullPointerException  这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的 ...

  3. C++标准库开发心得

    最近放弃MFC,改用C++标准库开发产品.毕竟MFC用熟了,马上改用STL还不太习惯.下面列出下总结的改用STL遇到的问题和解决办法: 1.清除空格 remove_if(iterBegin, iter ...

  4. Delphi word编辑

    private void but_Table_Click(object sender, EventArgs e) { object Nothing = System.Reflection.Missin ...

  5. bjfu1211 推公式,筛素数

    题目是求fun(n)的值 fun(n)= Gcd(3)+Gcd(4)+…+Gcd(i)+…+Gcd(n).Gcd(n)=gcd(C[n][1],C[n][2],……,C[n][n-1])C[n][k] ...

  6. JavaScript UI技术选型

    ExtJS l ExtJS(TODO:找旧版本,类似现在EasyUI插件的旧版本)简介:纯JS支持:IE6授权:GPLv3授权.商业授权($329/人) l Ext.NET简介:ExtJS的NET封装 ...

  7. DzzOffice添加动态壁纸例子-Bing每日壁纸

    Bing每日壁纸介绍:bing网站每天会更新一张不同的精选图片. 此压缩包内的程序,可以自动同步更新cn.bing.com网站每天更新的图片,作为dzzoffice的壁纸使用.实现自动每天更换不同的云 ...

  8. 【windows核心编程】使用远程线程注入DLL

    前言 该技术是指通过在[目标进程]中创建一个[远程线程]来达到注入的目的. 创建的[远程线程]函数为LoadLibrary, 线程函数的参数为DLL名字, 想要做的工作在DLL中编写.  示意图如下: ...

  9. makefile、gdb使用记录

    makefile的模板 all: rover server station rover: rover.c tcputil.o gcc rover.c tcputil.o -o rover -lpthr ...

  10. ocp 1Z0-047 131-276题解析

    131. Which view would you use to display the column names and DEFAULT valuesfor a table?A. DBA_TABLE ...