LEFT JOIN
LEFT JOIN 关键字会从左表那里返回所有的行,即使在右表中没有匹配的行。
即LEFT JOIN 的 ON 条件不会对数据行造成影响

RIGHT JOIN
RIGHT JOIN 关键字会从右表那里返回所有的行,即使在左表中没有匹配的行。

INNER JOIN 
INNER JOIN 关键字会从右表那里返回所有的行,即使在左表中没有匹配的行。

INNER JOIN 的ON 条件会对数据行进行筛选

因此 INNER JOIN的 ON条件 放在ON后 或 WHERE后是一样的效果

从论坛里抄一句过来:

on是连接条件, where是过滤条件。

对内连接来说, 二者等价。

对外连接来说,
on影响侧输入的输出, 合连接条件则输出相应列值,不合则输出null, 对主输入无影响。
where影响结果集。

on是连接条件, where是过滤条件。

对内连接来说, 二者等价。

对外连接来说,
  on影响侧输入的输出, 合连接条件则输出相应列值,不合则输出null, 对主输入无影响。
  where影响结果集。

select * from ta a left join tb on a.id=b.id and b.n is null
此语句输出a表所有行,对于b表的列,当id=a.id且n为null时才会有输出。

select * from ta a left join tb on a.id=b.id where b.n is null
只有b.n为null的行,且a表中存在id=b.id时,才输出,符则a表的行也被过滤

on是连接条件, where是过滤条件。

对内连接来说, 二者等价。

对外连接来说,
  on影响侧输入的输出, 合连接条件则输出相应列值,不合则输出null, 对主输入无影响。
  where影响结果集。

select * from ta a left join tb on a.id=b.id and b.n is null
此语句输出a表所有行,对于b表的列,当id=a.id且n为null时才会有输出。

select * from ta a left join tb on a.id=b.id where b.n is null
只有b.n为null的行,且a表中存在id=b.id时,才输出,符则a表的行也被过滤

on是连接条件, where是过滤条件。

对内连接来说, 二者等价。

对外连接来说,
  on影响侧输入的输出, 合连接条件则输出相应列值,不合则输出null, 对主输入无影响。
  where影响结果集。

select * from ta a left join tb on a.id=b.id and b.n is null
此语句输出a表所有行,对于b表的列,当id=a.id且n为null时才会有输出。

select * from ta a left join tb on a.id=b.id where b.n is null
只有b.n为null的行,且a表中存在id=b.id时,才输出,符则a表的行也被过滤

on是连接条件, where是过滤条件。

对内连接来说, 二者等价。

对外连接来说,
  on影响侧输入的输出, 合连接条件则输出相应列值,不合则输出null, 对主输入无影响。
  where影响结果集。

select * from ta a left join tb on a.id=b.id and b.n is null
此语句输出a表所有行,对于b表的列,当id=a.id且n为null时才会有输出。

select * from ta a left join tb on a.id=b.id where b.n is null
只有b.n为null的行,且a表中存在id=b.id时,才输出,符则a表的行也被过滤

SQLServer inner join,left join,right join,outer join 备忘备忘的更多相关文章

  1. SQL中inner join、outer join和cross join的区别

    对于SQL中inner join.outer join和cross join的区别简介:现有两张表,Table A 是左边的表.Table B 是右边的表.其各有四条记录,其中有两条记录name是相同 ...

  2. sqlite数据库执行full outer join

    sqlite数据库执行full outer join时提示:RIGHT and FULL OUTER JOINs are not currently supported. sqlite数据库不支持(+ ...

  3. MySql Outer Join 简单化

    查询from语句中的Outer Join可以在多种情况下被简化: 在解析阶段,右外连接操作可以被转变为等下ode值包含left join的操作,在一般情况下,转变: (T1, ...) RIGHT J ...

  4. 【转载】SQL中inner join、outer join和cross join的区别

    对于SQL中inner join.outer join和cross join的区别很多人不知道,我也是别人问起,才查找资料看了下,跟自己之前的认识差不多, 如果你使用join连表,缺陷的情况下是inn ...

  5. hive中left join、left outer join和left semi join的区别

    先说结论,再举例子.   hive中,left join与left outer join等价.   left semi join与left outer join的区别:left semi join相当 ...

  6. oracle 内连接(inner join)、外连接(outer join)、全连接(full join)

    转自:https://premier9527.iteye.com/blog/1659689 建表语句: create table EMPLOYEE(EID NUMBER,DEPTID NUMBER,E ...

  7. “,”、“natural join”、“natural left outer join”、“natural right outer join”的用法总结

    “,”:代表笛卡尔积: “natural join”:代表自然连接,即同名列等值连接: “natural left outer join”:表示左外连接: “natural right outer j ...

  8. SQL中inner join,outer join和cross join的区别

    使用join连表,缺陷的情况下是inner join,开发中使用的left join和right join属于outer join,outer join还包括full join 现有两张表,Table ...

  9. left outer join的on不起作用

    left outer join的on不起作用 Why and when a LEFT JOIN with condition in WHERE clause is not equivalent to ...

  10. Oracle Partition Outer Join 稠化报表

    partition outer join实现将稀疏数据转为稠密数据,举例: with t as (select deptno, job, sum(sal) sum_sal from emp group ...

随机推荐

  1. 虚拟机+linux+大杂烩

    出于项目需要,需要用到linux系统.这玩意儿平时很少用,要说体验度还是windows更人性化一些. 1.虚拟机的安装,这个没说的,百度VMware直接下最新版安装就好. 2.接着是linux系统的安 ...

  2. texi格式文件的读取

    使用texi2html可以将texi格式的文件转换成html格式的文件. sudo apt-get install texi2html 在对应目录下 texi2html filename.texi 或 ...

  3. 读书笔记「Python编程:从入门到实践」_11.测试函数

    11.1 测试函数 要学习测试,得有要测试的代码.下面是一个简单的函数,它接受名和姓并返回整洁的姓名: def get_formatted_name(first, last): "" ...

  4. C# 获得剪贴板内容和 richTextBox部分文本设置颜色

    try { MemoryStream vMemoryStream = iData.GetData("Html Format") as MemoryStream; if (vMemo ...

  5. MessageFormat.format()用法

    1.java.text.Format的继承结构如下   2.MessageFormat模式 FormatElement { ArgumentIndex }:是从0开始的入参位置索引 { Argumen ...

  6. 在oracle中将某个字段的数据作为列名的查询

    原表结构 查询语句: select sno,sname,sum(语文) 语文,sum(数学) 数学,sum(英语) 英语 from (select sno,sname,decode(subjiect, ...

  7. Django-xadmin+django-import-export导入导出的实现

    转载自:https://blog.csdn.net/zcyuefan/article/details/77748850 1. 需求vs现状1.1 需求要求做一个ERP后台辅助管理的程序,有以下几项基本 ...

  8. Codeforces 902D/901B - GCD of Polynomials

    传送门:http://codeforces.com/contest/902/problem/D 本题是一个数学问题——多项式整除. 对于两个整数a.b,求最大公约数gcd(a,b)的辗转相除法的函数如 ...

  9. Mongodb--切片

    1.在3台服务器上分别运行 2717 , 27018,27109,互为副本集,形成3套replSet 2.在3台服务器上各配置config.server,运行在27020端口上,和配置mongod的命 ...

  10. ubuntu-ln命令

    安装软件完成后,常常需要使用ln命令来将命令重新定义一下路径,就相当于windows中的加入系统环境变量的意思 ~ sudo ln -s /home/spike/Downloads/redis/src ...