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. 阿里云ECS使用SSH连接CentOS 6.9经常断线的问题解决:OperationTimedOut

    说明:不一定有效,可以试一下. 设置: vi /etc/ssh/sshd_config #添加或修改以下配置 ClientAliveInterval #每隔多少秒给SSH客户端发送一次信号 Clien ...

  2. CentOS 6.9配置网卡IP/网关/DNS命令详细介绍及一些常用网络配置命令(转)

    一.IP 即时生效(重启后失效): ifconfig eth0 192.168.1.102 netmask 255.255.255.0 //添加IP地址 route add default gw 19 ...

  3. Linux 下的图形库介绍

    在进行Linux下的图形系统编程时,我们常常会遇到以下这些概念: Framebuffer, X11, SDL,DFB, miniGUI, OpenGL,QT, GTK,KDE, GNOME等等. 一. ...

  4. js中几种常见的方法的实例 shift,unshift,push,prop

    1.shift()定义和用法 shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值. 语法:arrayObject.shift() 返回值:数组原来的第一个元素的值. 说明:如果 ...

  5. nginx配置rewrite总结

    1.rewrite regex replacement [flag] 2.flag为break时,url重写后,直接使用当前资源,不在执行location里其他语句,完成本次请求,地址栏url不变. ...

  6. 四、logback日志

    加入在main\resources 创建logback.xml文件 <configuration> <!-- %m输出的信息,%p日志级别,%t线程名,%d日期,%c类的全名,,,, ...

  7. python的FTP模块

    python本身自带一个FTP模块,可以轻松实现FTP的上传,下载等操作.下面来看看用法: from ftplib import FTP import socket    #用来设置超时时间 FTP. ...

  8. sftp子系统申请已拒绝 请确保ssh连接的sftp子系统设置有效

    一.sftp子系统申请已拒绝,请确保ssh连接的sftp子系统设置有效 1.修改配置文件 [root@nulige ~]# vi /etc/ssh/sshd_config # override def ...

  9. STL 源代码剖析 算法 stl_algo.h -- next_permutation

    本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie next_permutation ----------------------------- ...

  10. android 带文字阴影的button

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...