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 (内连接、等值连接):只返回两个表中连接字段相等的行。

--select * from  A inner join B on A.abc=B.abc

id abc id1 abc1
1 a 2 a
3 c 4 c

--left join(左连接) :返回A表中所有的记录以及B表中连接字段相等的记录,没有匹配的则以null值取代。

--select * from  A left join B on A.abc=B.abc

id abc id1 abc1
1 a 2 a
2 b null null
3 c 4 c
4 d null null

--right join(右连接):返回B表中所有的记录以及A表中连接字段相等的记录,没有匹配的则以null值取代。

--select * from  A right join B on A.abc=B.abc

id abc id1 abc1
null null 1 e
1 a 2 a
null null 3 f
2 c 4 c

--full join(外连接、全连接):返回两个表中的行:left join + right join。对于没有匹配的记录,则会以null做为值。

--select * from  A full join B on A.abc=B.abc

id abc id1 abc1
1 a 2 a
2 b null null
3 c 4 c
4 d null null
null null 1 e
null null 3 f

--先按照A表中的记录一条一条到B表找匹配项,没有则用null代替。

--再按照B表中的记录一条一条到A表找匹配项,没有则用null代替。

--排除重复的记录,则为最后结果

--cross join:结果是笛卡尔积,就是第一个表的行数乘以第二个表的行数。

 

sql server join联结的更多相关文章

  1. SQL Server Join方式

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

  2. SQL Server [join] 整理

    [表A]Aid    Aname   Acode1       aa      0012       bb      0023       cc      0034       dd      004 ...

  3. SQL Server join介绍

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

  4. SQL Server - JOIN

    JOIN

  5. sql server join ,inner join ,left join ,right join 的使用

    测试数据脚本 CREATE TABLE Atable ( S# INT, Sname nvarchar(32), Sage INT, Sfrom nvarchar(8) ) insert into A ...

  6. SQL Server 优化-执行计划

    对于SQL Server的优化来说,优化查询可能是很常见的事情.由于数据库的优化,本身也是一个涉及面比较的广的话题, 因此本文只谈优化查询时如何看懂SQL Server查询计划.毕竟我对SQL Ser ...

  7. SQL server 使用 内联结(INNER JOIN) 联结多个表 (以及过滤条件 WHERE, AND使用区别)

    INNER JOIN ……ON的语法格式: FROM (((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INN ...

  8. SQL Server信息偏差影响表联结方式统计

    SQL Server统计信息偏差影响表联结方式案例浅析   我们知道数据库中的统计信息的准确性是非常重要的.它会影响执行计划.一直想写一篇关于统计信息影响执行计划的相关博客,但是都卡在如何构造一个合适 ...

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

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

随机推荐

  1. CI集成Smarty的实现方式

    给新伙伴的忠告:不要去想着有多复杂,看一遍绝对就会弄了! 这样集成的目的是什么? 因为我使用过CI和smarty,所以我就按自己的理解讲一下:CI框架在控制器.models方面做的很好,但在多变的视图 ...

  2. RobotFramework测试库速查表

    标准库 序号 标准库 说  明 1 Builtin 包含经常需要的关键字,自动导入无需import 2 Dialogs 提供了暂停测试执行和从用户的输入方式 3 Collections 提供一组关键词 ...

  3. modprobe 和 insmod 区别

    1 关于内核加载方式 1) insmod : insmod一次只能加载特定的一个设备驱动,且需要驱动的具体地址          举例说明: insmod pblk.ko     // 需要制定pbl ...

  4. Fiddler Wireshark 抓包

    使用 层次 Fiddler 简单 第七层应用层的 HTTP(S) 协议的包 Wireshark 复杂 第三层网络层的包 注意:Fiddler 只能抓到走系统代理的流量.不走系统代理的流量(比如浏览器选 ...

  5. 七十七:flask.Restful之flask-Restful参数验证

    flask_restful插件提供了reqparse来做类似WTForms的验证功能来校验数据,add_argument可以指定这个字段的名字.数据类型等1.default:默认值,若没有传入此次参数 ...

  6. PS技巧集合

    一.把图片变模糊 图像——调整——色阶——输出色阶——滤镜——模糊——高斯模糊——半径 二.图片换色 点击右下角弹层下方的“fx”——颜色叠加——色样颜色

  7. 科学论文写作 Tips

    感觉还是课程中给的英文描述会比较好,所以笔记大多数还是以老师的原英文 PPT 为主 1 Steps in the Writing Process 如何开展论文写作以及各个步骤的时间分配 1-1 Pre ...

  8. Block代码块中使用局部变量注意点

    第一次写代码遇到报这个错,实在是想不通为什么,按常理应该是不会有问题,报错的呀??纠结了一会之后只好仔细查看报错原因咯,原来是: 当我们在block代码块中使用局部变量时,就会很容易出现如图的错误. ...

  9. 002. Add Two Numbers

    题目链接:https://leetcode.com/problems/add-two-numbers/description/ Example: Input: (2 -> 4 -> 3) ...

  10. A = min(1, max(0, A))

    Crop A into [0, 1]: