数据准备:

create table T1(
A varchar(10) not null,
B varchar(10) not null,
C tinyint not null
); create table T2(
B varchar(10) not null,
E tinyint not null
); insert into T1
values
('a1', 'b1', 5),
('a1', 'b2', 6),
('a2', 'b3', 8),
('a2', 'b4', 12); insert into T2
values
('b1', 3),
('b2', 7),
('b3', 10),
('b3', 2),
('b5', 2); select * from T1;
select * from T2;

结果:

 A          B          C
---------- ---------- ----
a1 b1 5
a1 b2 6
a2 b3 8
a2 b4 12 (4 行受影响) B E
---------- ----
b1 3
b2 7
b3 10
b3 2
b5 2 (5 行受影响)

1、内连接

 select * from T1 inner join T2 on T1.B = T2.B

 A          B          C    B          E
---------- ---------- ---- ---------- ----
a1 b1 5 b1 3
a1 b2 6 b2 7
a2 b3 8 b3 10
a2 b3 8 b3 2

2、左外连接

 select * from T1 left outer join T2 on T1.B = T2.B

 A          B          C    B          E
---------- ---------- ---- ---------- ----
a1 b1 5 b1 3
a1 b2 6 b2 7
a2 b3 8 b3 10
a2 b3 8 b3 2
a2 b4 12 NULL NULL

3、右外连接

 select * from T1 right outer join T2 on T1.B = T2.B

 A          B          C      B          E
---------- ---------- ---- ---------- ----
a1 b1 5 b1 3
a1 b2 6 b2 7
a2 b3 8 b3 10
a2 b3 8 b3 2
NULL NULL NULL b5 2

4、完全连接

 select * from T1 full outer join T2 on T1.B = T2.B

 A            B            C       B          E
---------- ---------- ---- ---------- ----
a1 b1 5 b1 3
a1 b2 6 b2 7
a2 b3 8 b3 10
a2 b3 8 b3 2
a2 b4 12 NULL NULL
NULL NULL NULL b5 2

5、交叉连接(笛卡尔乘积)

 select * from T1 cross join T2

 A          B          C    B          E
---------- ---------- ---- ---------- ----
a1 b1 5 b1 3
a1 b1 5 b2 7
a1 b1 5 b3 10
a1 b1 5 b3 2
a1 b1 5 b5 2
a1 b2 6 b1 3
a1 b2 6 b2 7
a1 b2 6 b3 10
a1 b2 6 b3 2
a1 b2 6 b5 2
a2 b3 8 b1 3
a2 b3 8 b2 7
a2 b3 8 b3 10
a2 b3 8 b3 2
a2 b3 8 b5 2
a2 b4 12 b1 3
a2 b4 12 b2 7
a2 b4 12 b3 10
a2 b4 12 b3 2
a2 b4 12 b5 2

SQL Server内连接、左外连接、右外连接、完全连接、交叉lianjie的更多相关文章

  1. 深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接(转)

    1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接.     内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 stude ...

  2. 【转】深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接

    [原文]:http://www.jb51.net/article/39432.htm 1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接.    ...

  3. 深入理解SQL的四种连接,左外连接,右外连接,内连接,全连接

    1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接.     内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 stude ...

  4. 转【深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接】

    转自:https://www.jb51.net/article/39432.htm 1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接.     ...

  5. 此版本的 SQL Server 不支持用户实例登录标志。该连接将关闭“的解决

    此版本的 SQL Server 不支持用户实例登录标志.该连接将关闭“的解决(转) 2008-10-04 13:31 错误提示:说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息 ...

  6. SQL Server 内置函数、临时对象、流程控制

    SQL Server 内置函数 日期时间函数 --返回当前系统日期时间 select getdate() as [datetime],sysdatetime() as [datetime2] getd ...

  7. 10、SQL Server 内置函数、临时对象、流程控制

    SQL Server 内置函数 日期时间函数 --返回当前系统日期时间 select getdate() as [datetime],sysdatetime() as [datetime2] getd ...

  8. SQL Server内置的HTAP技术

    SQL Server内置的HTAP技术 目录 背景 SQL Server在OLAP上的发展 SQL Server的初代HTAP SQL Server逐渐增强的HTAP SQL Server列存总结 H ...

  9. sql server 内置ETL工具学习(一) BCP篇

    sql server 内置ETL工具学习 常用的导入方式:bcp, BULK INSERT,OPENROWSET和 SSIS. BCP BCP全称BULK COPY PROGRAM 有以下特点: 命令 ...

  10. sql server内置存储过程、查看系统信息

    1.检索关键字:sql server内置存储过程,sql server查看系统信息 2.查看磁盘空间:EXEC master.dbo.xp_fixeddrives , --查看各个数据库所在磁盘情况S ...

随机推荐

  1. ggplot2笔记

    ggplot2笔记 下面是ggplot2的一些文档和github上的源代码http://docs.ggplot2.org/current/https://github.com/hadley/ggplo ...

  2. Oracle错误——引发ORA-01843:无效的月份。

    问题 引发ORA-01843:无效的月份. 解决 改动client会话日期的语言: ALTER SESSION SET nls_date_language='american';

  3. LeetCode103 Binary Tree Zigzag Level Order Traversal

    Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to ...

  4. 3DMAX安装失败怎样卸载重新安装3DMAX,解决3DMAX安装失败的方法总结

    技术帖:3DMAX没有按照正确方式卸载,导致3DMAX安装失败.楼主也查过网上关于如何解决3DMAX安装失败的一些文章,是说删除几个3DMAX文件和3DMAX软件注册表就可以解决3DMAX安装失败的问 ...

  5. JavaWeb登录、注销、退出、记住用户名和密码

    应该是保存在Cookie里,session是放在服务器的内存里的.在用户关闭了网页窗口后,session就清空了.而Cookie是保存在用户的IE临时文件夹中的,再次登录时,读取其中的值传给服务器. ...

  6. python元组和range

    1.元组 1)元组介绍 元组: 俗称不可变的列表.⼜被成为只读列表, 元组也是python的基本数据类型之⼀, ⽤⼩括号括起来, ⾥⾯可以放任何数据类型的数据, 查询可以. 循环也可以. 切片也可以. ...

  7. 洛谷P1510 精卫填海

    //01背包 求背包内物品价值超过某一定值时的最小体积 #include<bits/stdc++.h> using namespace std; ; ; int n,v_tot,w_tot ...

  8. Resharper 如何把类里的类移动到其他文件

    有时候,看到一个类里有很多类,需要把他移动其他文件 假如有一个类 class A { class B { } } 如何把 B 移动文件 B里? 一般使用 快捷键是 Resharper 的快捷键,如果不 ...

  9. 使用vux组件库常见报错($t)处理

    错误一: [Vue warn]: Property or method "$t" is not defined on the instance but referenced dur ...

  10. 关于Java语言for循环内外变量定义的问题

    今天看书时,看到一个代码,一个在循环外面没有用的变量,后即有了我的问题,在后面: 我的问题: 变量循环内定义,例如:while(true){String splitStr = null;}这“些”个s ...