【表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. 标准 IO fread 与 fwrite 的使用(可以实现二进制流的读写)

    size_t   fread(void *ptr,  size_t size,   size_t nmemb,   FILE *stream); size_t   fwrite(const void ...

  2. PCA分析,及c++代码实现

    本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/fengbingchun/article/details/79235028 主成分分析(Principal Co ...

  3. BIO、NIO和AIO

    BIO(Blocking I/O)同步阻塞I/O 这是最基本与简单的I/O操作方式,其根本特性是做完一件事再去做另一件事,一件事一定要等前一件事做完,这很符合程序员传统的顺序来开发思想,因此BIO模型 ...

  4. BCZM: Chapter 1

    1.1 CPU 占用率 https://www.cnblogs.com/TenosDoIt/p/3242910.html 1.2 中国象棋将帅 https://blog.csdn.net/kabini ...

  5. 浏览器http跳转至https问题

    Chrome 浏览器 地址栏中输入 chrome://net-internals/#hsts 在 Delete domain security policies 中输入项目的域名,并 Delete 删 ...

  6. vue+elementui 中 @keyup 键盘上下左右移动聚焦

    <template> <el-table :data="CreditUnclearOutlineList" border style="width: 1 ...

  7. delphi常见的错误

    ******************************* * 编 译 错 误 信 息 * ******************************* ';' not allowed befo ...

  8. 【转】Git 修改已提交的commit注释

    https://www.jianshu.com/p/098d85a58bf1 [重点] 通过git rebase -i HEAD~2 你想修改哪条注释 就把哪条注释前面的pick换成edit git ...

  9. 阶乘质因子分解——lightoj1035

    #include<bits/stdc++.h> using namespace std; #define ll long long #define maxn 200 int primes[ ...

  10. Vue的data选项使用注意

    使用组件时,大多数可以传入到Vue构造器中的选项可以在Vue extend()或 Vue.component() 中注册组件时使用,但是有一个重要的前提:data必须是函数 .在 var vm = n ...