【表A】
Aid    Aname   Acode
1       aa      001
2       bb      002
3       cc      003
4       dd      004
5       ee      005
【表B】
Bid    Bname    Bcode
1       aaa      101
3       bbb      102
5       ccc      103
7       ddd      104
9       eee      105
 
----------------------------------------------------------------------------
left join:左联接
返回包括左表中的所有记录和右表中联结字段相等的记录。
 
例:
SELECT *
FROM A
LEFT JOIN B
ON A.Aid=B.Bid
结果:
Aid    Aname   Acode   Bid   Bname   Bcode
1       aa      001     1     aaa     101
2       bb      002    NULL   NULL    NULL
3       cc      003     3     bbb     102
4       dd      004    NULL   NULL    NULL
5       ee      005     5     ccc     103
 
 
----------------------------------------------------------------------------

right join:右联接
返回包括右表中的所有记录和左表中联结字段相等的记录。

 
例:
SELECT *
FROM A
Right JOIN B
ON A.Aid=B.Bid
结果:
Aid    Aname   Acode   Bid   Bname   Bcode
1       aa      001     1     aaa     101 
3       cc      003     3     bbb     102
5       ee      005     5     ccc     103
NULL    NULL    NULL    7     ddd     104
NULL    NULL    NULL    9     eee     105
 
 
----------------------------------------------------------------------------

inner join:内联接
只返回两个表中联结字段相等的行。

例:
SELECT *
FROM A
INNER JOIN B       //INNER可以不写
ON A.Aid=B.Bid
结果:
Aid    Aname   Acode   Bid   Bname   Bcode
1       aa      001     1     aaa     101 
3       cc      003     3     bbb     102
5       ee      005     5     ccc     103
 
 
----------------------------------------------------------------------------

full join:全联接
返回两个表中所有字段。

例:
SELECT *
FROM A
FULL JOIN B  
ON A.Aid=B.Bid
结果:
Aid    Aname   Acode   Bid   Bname   Bcode
1       aa      001     1     aaa     101
2       bb      002    NULL   NULL    NULL
3       cc      003     3     bbb     102
4       dd      004    NULL   NULL    NULL
5       ee      005     5     ccc     103
NULL    NULL    NULL    7     ddd     104
NULL    NULL    NULL    9     eee     105

 
 
----------------------------------------------------------------------------

cross join:交叉联接
返回两个表的笛卡儿积。

例1:
SELECT *
FROM A
Cross JOIN B  
结果:
Aid    Aname   Acode   Bid   Bname   Bcode
1                       1
2                       1
3                       1
4        (5*5条)       1
5                       1
1                       3
2                       3
……
……
……
例2:
SELECT *
FROM A
Cross JOIN B 
WHERE
A.Aid = B.Bid
结果:
Aid    Aname   Acode   Bid   Bname   Bcode
1       aa      001     1     aaa     101 
3       cc      003     3     bbb     102
5       ee      005     5     ccc     103
 
与inner join 结果一样,实际上是先返回所有结果(25条),再从中查询符合WHERE的结果。
 

SQL Server [join] 整理的更多相关文章

  1. SQL Server Join方式

    原文:SQL Server Join方式 0.参考文献 Microsoft SQL Server企业级平台管理实践 看懂SqlServer查询计划 1.测试数据准备 参考:Sql Server中的表访 ...

  2. SQL Server通过整理索引碎片和重建索引提高速度

    本文章转载:http://database.51cto.com/art/201108/282408.htm SQL Server数据库中,当索引碎片太多时,就会拖慢数据库查询的速度.这时我们可以通过整 ...

  3. sql server 碎片整理——DBCC SHOWCONTIG

    转自: 1.http://blog.sina.com.cn/s/blog_6d2675450101ks6i.html 2.http://www.cnblogs.com/CareySon/archive ...

  4. SQL Server 语句整理

    1. 创建数据库 create database dbName 2. 删除数据库 drop database dbName 3. 备份sql server --- 创建 备份数据的 device US ...

  5. 提升SQL Server速度整理索引碎片

    转载:http://wenku.baidu.com/view/f64c8a707fd5360cba1adbea.html SQL Server2005索引碎片分析和解决方法   毫无疑问,给表添加索引 ...

  6. SQL Server书籍整理

    1.<Microsoft SQL Server企业级平台管理实践>徐海蔚2.<SQL Server 2005 Performance Tuning性能调校>胡百敬3.<M ...

  7. sql server 知识整理 isnull函数()

    exec sp_helptext ProPrecode_matcode_uf exec sp_helptext 存储过程名字 isnull 函数() SQL Serve中的isnull()函数: is ...

  8. sql server join联结

    join学习起来有点乱,现做如下整理: table A id abc 1 a 2 b 3 c 4 d table B id abc 1 e 2 a 3 f 4 c --join或者inner join ...

  9. SQL Server join介绍

    介绍Inner Join(可以省略Inner,平常经常inner,就是inner join), Full Out Join,Cross Join,Left Join, Right Join区别. )) ...

随机推荐

  1. json条件查询

    完整Demo <html> <head> <script type="text/javascript" src="http://www.w3 ...

  2. WordTEX

    https://www.andrew.cmu.edu/user/twildenh/wordtex/

  3. python 相关操作

    json转字典: #如:{"Message":"OK","RequestId":"9922A379-7373-492C-842A- ...

  4. Java中的线程Thread方法之---suspend()和resume()

    前篇说到了Thread中的join方法,这一篇我们就来介绍一下suspend()和resume()方法,从字面意义上可以了解到这两个方法是一对的,suspend()方法就是将一个线程挂起(暂停),re ...

  5. MetalLB自建私有Kubernetes的LoadBalancer负载均衡类型服务

    简介 在私有网络上运行 Kubernetes,和御三家相比,对 LoadBalancer 类型的服务的支持应该是众多表面差异中最醒目的一个了.类型为 LoadBalancer 的服务在 Kuberne ...

  6. NOIp2018集训test-9-2(am)

    一场讲述谁比谁更傻逼的普及组比赛,证明了 1.老张是魔鬼(为什么有这么多套普及组题??) 2.我最傻逼 第 1 题 谜题 判断1~99哪些数翻转后合法,找到最长的连续合法段的长度,为4,所以n< ...

  7. Wannafly挑战赛21-A-灯塔-内含正确的凸包模版

    (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 目录 目录 题意:传送门 思路: AC代码: 题意:传送门 题目描述 Z市是一座港口城市,来来往往的船只依靠灯塔指引方向. 在海平面上 ...

  8. Invalid bound statement (not found): com.my.demo.mapper.UserMapper.getAll

    网上的方法全试了,配置全对,很奇怪. 最后一查,竟然忘记把mapper保存为xml格式. 记录一下.

  9. Openstack Nova 源码分析 — 使用 VCDriver 创建 VMware Instance

    目录 目录 前言 流程图 nova-compute vCenter 前言 在上一篇Openstack Nova 源码分析 - Create instances (nova-conductor阶段)中, ...

  10. Linux下rsync的安装及简单使用

    2018-09-25 15:39:04 一.RSYNC安装环境: centos6.5 iptables关闭和selinux为disabled 源码安装:到rsync官网下载rsync源码安装包,上传到 ...