1.from A inner join B on A.ID=B.ID :两表都有的记录才列出

A表:  ID   Name                           B表: ID  Class

1      BMW                                   1     C1

2      Aodi                                    2     C2

Null    Benz                                  4     Null

3        Null                                   Null   C4

select  * from A inner join B on A.ID=B.ID:

ID       Name            ID        Class

1        BMW              1         C1

2         Aodi              2         C2

SELECT * FROM Table1 t1 INNER JOIN Table2 t2 ON t1.Col1 = t2.Col1

2.from A left join B on A.ID=B.ID:

A表中所有记录列出,B中无法匹配的用Null匹配

A表:  ID   Name                           B表: ID  Class

1      BMW                                   1     C1

2      Aodi                                    2     C2

Null    Benz                                  4     Null

3        Null                                   Null   C4

select  * from A left join B on A.ID=B.ID:

ID       Name            ID        Class

1        BMW             1          C1

2        Aodi              2          C2

Null      Benz             Null       Null

3        Null               Null        Null

SELECT * FROM Tables1 t1 LEFT OUTER JOIN Table2 t2 on t1.Col1 = t2.Col2

SELECT * FROM Table1 t1 LEFT OUTER JOIN Table2 t2 ON t1.Col1 = t2.Col1 WHERE t2.Col1 IS NULL

3.from A right join B on A.ID=B.ID:

B表中所有记录列出,A中无法匹配的用Null匹配

A表:  ID   Name                           B表: ID  Class

1      BMW                                   1     C1

2      Aodi                                    2     C2

Null    Benz                                  4     Null

3        Null                                   Null   C4

select  * from A right join B on A.ID=B.ID:

ID       Name                   ID        Class

1          BMW                     1           C1

2         Aodi                       2           C2

Null      Null                        4           Null

Null      Null                       Null        C4

SELECT * FROM Tables1 t1 RIGHT OUTER JOIN Table2 t2 on t1.Col1 = t2.Col2

SELECT * FROM Table1 t1 RIGHT OUTER JOIN Table2 t2 ON t1.Col1 = t2.Col1 WHERE t2.Col1 IS NULL

4.from A full outer join B on A.ID=B.ID.

列出A表所有记录,B表所有记录。无法匹配的用Null替代

A表:  ID   Name                           B表: ID  Class

1      BMW                                   1     C1

2      Aodi                                    2     C2

Null    Benz                                  4     Null

3        Null                                   Null   C4

select * from A full outer join B on A.ID=B.ID.

ID       Name                   ID        Class

1      BMW                     1         C1

2      Aodi                      2        C2

Null   Benz                     Null     Null

3       Null                       Null    Null

Null     Null                       4        Null

Null    Null                        Null      C4

SELECT * FROM Table1 t1 FULL OUTER JOIN Table2 t2 ON t1.Col1 = t2.Col1 

SELECT * FROM Table1 t1 FULL OUTER JOIN Table2 t2 ON t1.ID = t2.ID WHERE t1.ID IS NULL OR t2.ID IS NULL

CROSS JOIN:

交叉连接不需要任何连接条件。这个会把两个表的的数据进行笛卡尔积操作。

SELECT * FROM Table1 t1 CROSS JOIN Table2 t2

区分SQL Server关联查询之inner join,left join, right join, full outer join并图解的更多相关文章

  1. SQL SERVER 连接查询(join...on...)

    SQL SERVER联结查询包含inner join,left join,right join,outer join (on)四种. [inner join]:行数为满足条件n*m,并且on的条件对两 ...

  2. 转载 50种方法优化SQL Server数据库查询

    原文地址 http://www.cnblogs.com/zhycyq/articles/2636748.html 50种方法优化SQL Server数据库查询 查询速度慢的原因很多,常见如下几种: 1 ...

  3. 08Microsoft SQL Server 数据查询

    Microsoft SQL Server 数据查询 单表查询所有列 --查询所有行所有列 select all * from table; --查询不重复行的所有列 select distinct * ...

  4. SQL server 连接 查询

    在sql server中,我们经常能用到连接,今天总结一下连接的基础知识.连接的分类: 交叉连接CROSS JOIN 内连接INNER JOIN 外连接{左外连接LEFT [OUTER] JOIN : ...

  5. SQL Server中查询用户的对象权限和角色的方法

    --SQL Server中查询用户的对象权限和角色的方法 -- 查询用户的object权限 exec sp_helprotect NULL, 'sa' -- 查询用户拥有的role exec sp_h ...

  6. JAVA-Unit03: SQL(基础查询) 、 SQL(关联查询)

    Unit03: SQL(基础查询) . SQL(关联查询) 列别名 当SELECT子句中查询的列是一个函数 或者表达式时,那么查询出来的结果集 中对应的该字段的名字就是这个函数或者 表达式的名字.为此 ...

  7. 一次快速改写 SQL Server 高效查询的范例

    原文:一次快速改写 SQL Server 高效查询的范例 最近線上系統突然出現匯出資料超過 10 筆時,查詢逾時的狀況,在仔細查找之後. 發現了問題原因,透過應用端與數據端兩邊同時調整,將查詢的效率提 ...

  8. SQL Server中查询CPU占用高的SQL语句

    SQL Server中查询CPU占用高的情况,会用到sys.sysprocesses ,dm_exec_sessions ,dm_exec_requests 一.查看当前的数据库用户连接有多少 USE ...

  9. C#构造方法(函数) C#方法重载 C#字段和属性 MUI实现上拉加载和下拉刷新 SVN常用功能介绍(二) SVN常用功能介绍(一) ASP.NET常用内置对象之——Server sql server——子查询 C#接口 字符串的本质 AJAX原生JavaScript写法

    C#构造方法(函数)   一.概括 1.通常创建一个对象的方法如图: 通过  Student tom = new Student(); 创建tom对象,这种创建实例的形式被称为构造方法. 简述:用来初 ...

随机推荐

  1. 8VC Venture Cup 2016 - Final Round (Div. 2 Edition) D. Factory Repairs 树状数组

    D. Factory Repairs 题目连接: http://www.codeforces.com/contest/635/problem/D Description A factory produ ...

  2. 虚拟PDF打印机

    doPDF虚拟打印机 doPDF 是一个免费的PDF转换器,可同时运用于商业和个人,它把自己安装为一个打印机驱动,允许从任意一个有打印输出的Windows程序中打印,还包含缩放,质量定义和页面大小定义 ...

  3. CSS3技巧:fit-content水平居中

    当我们让一个模块水平居中首先想到的肯定是margin:0 auto;有木有?那么今天给大家介绍一个fit-content属性,不知道有没有同学用过,如果用过那么你可以略过这篇文章,没用过的同学就继续了 ...

  4. Linux makefile 教程

    转自:http://blog.csdn.net/liang13664759/article/details/1771246 最近在学习Linux下的C编程,买了一本叫<Linux环境下的C编程指 ...

  5. soap-学习

    1. SOAP 是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息. 简单的说:SOAP是用于访问网络服务的协议. 2. 什么是SOAP SOAP 指简易对象访问协议 SOAP ...

  6. [Todo]非常好的免费IT书籍资源 & Github排名

    今天看github排名,看到排在第二位的是免费书籍: https://github.com/vhf/free-programming-books/blob/master/free-programmin ...

  7. 解析PHP中如何将数组变量写入文件

    在用PHP记录日志,或者是 Ajax 请求出错想要 debug 的时候.我们一般都会将信息写入到一个指定的文件当中.然后根据相应的信息来处理问题.比如笔者最喜欢在用 Ajax 取不到数据的时候,在PH ...

  8. dubbo-monitor安装监控中心,管理控制台安装网页一直访问不到,解决bug的方式记录

    问题再现 第一步,重启机器 第二步,按照dubbo-monitor需要开启的服务,顺序逐一进行启动,之前的推翻全部重新再走一遍就通了,千万不能死磕...很浪费时间.... 通过打印日志追踪问题的所在. ...

  9. static 关键字 静态属性与方法 -> :: self $this 区别 可见性的关键字区别

    1.声明类属性或方法为静态,就可以不实例化类而直接访问.静态属性不能通过一个类已实例化的对象来访问(但静态方法可以). 2.由于静态方法不需要通过对象即可调用,所以伪变量 $this 在静态方法中不可 ...

  10. oc和swift混编 使用use_frameworks!后编译出错

    Swift项目中同时使用OC的库和Swift的库时,用CocoaPods导入时添加use_frameworks! 如果在cocoapods 里面不使用use_frameworks!,则是通过stati ...