on and 和 on where 的 区别

在使用 left join 时, on and 和 on where 会有区别;
1. on的条件是在连接生成临时表时使用的条件,以左表为基准 ,不管on中的条件真否,都会返回左表中的记录
  on 后面 and 都是对右表进行筛选

2.where是全部连接完后,对临时表进行筛选,筛选对左表和右表都有效

在使用inner join时,on   and与on  where条件的区别:不管是对左表还是右表进行筛选,on  and和on  where都会对生成的临时表进行过滤。

1. 新建表 t1

2. 新建表 t2

3. 关联查询:

select * from t1 left join t2 on t1.user_id = t2.user_id

on and

a.) 对左表加and 条件

select * from t1 left join t2 on t1.user_id = t2.user_id and t1.deleted = 0

b.) 对右表加and 条件

select * from t1 left join t2 on t1.user_id = t2.user_id and t2.deleted = 0

on where

select * from t1 left join t2 on t1.user_id = t2.user_id where t1.deleted = 0

select * from t1 left join t2 on t1.user_id = t2.user_id where t2.deleted = 0

转载于:https://www.cnblogs.com/Uzai/p/11260361.html

SQL on and 和 on where 的区别相关推荐

  1. SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别

    SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别 原文:SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别 MSSQL为我们提供了两种动态执行SQL语 ...

  2. SQL Server中SCAN 和SEEK的区别

    SQL Server中SCAN 和SEEK的区别 SQL SERVER使用扫描(scan)和查找(seek)这两种算法从数据表和索引中读取数据.这两种算法构成了查询的基础,几乎无处不在.Scan会扫描 ...

  3. SQL中char varchar nchar nvarchar ntext区别和使用(资料汇总)

    SQL中char varchar nchar nvarchar ntext区别和使用(资料汇总) 2008年10月14日 星期二 23:57 一.SQL中char varchar nchar nvar ...

  4. SQL中的or与in的区别

    SQL中的or与in的区别 or与in一样的案例(条件里只有a时) a in (1,2,3) a = 1 or a = 2 or a = 3 or与in不一样的案例(条件里不止a时) where a ...

  5. SQL Server 和 Oracle 以及 MySQL 的区别

    SQL Server 和 Oracle 以及 MySQL 的区别 历史说明区别 > Oracle: 中文译作甲骨文,成立于1977年,早期的理论基础,反而来自于一篇IBM的论文<A Rel ...

  6. SQL、MySQL与HiveSQL的使用区别ing

    SQL.MySQL与HiveSQL的使用区别 1 查询结果前10条数据 2 返回是周几的函数 3 查看表结构数量 4 获取当前时间 5 从数据库定位到某张表 6 分号字符: 7 IS [NOT] NU ...

  7. sql server 登录名和用户名的区别和联系

     sql server 登录名和用户名的区别和联系  总括:登录名可以理解为进入整个大楼的钥匙,用户名可以理解为一个房间的钥匙,这里所说的大楼就是sql server服务器,而房间就是这个sql se ...

  8. SQL SERVER 中的smalldatetime和datetime区别

    SQL SERVER 中的smalldatetime和datetime区别 原文:SQL SERVER 中的smalldatetime和datetime区别 smalldatetime不能到秒.  不 ...

  9. SQL Server企业版/标准版/个人版的区别

    SQL Server企业版/标准版/个人版的区别 http://blog.163.com/meteor_zc/blog/static/33150220200811291738603/ SQL Serv ...

  10. mysql oracle sql区别吗_mysql数据库的SQL语句和oracle的有什么区别?详细点

    匿名用户 1级 2017-08-20 回答 区别如下: 1. Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Or ...

最新文章

  1. 精通 Oracle+Python 存储过程、Python 编程
  2. 归并排序执行次数_十大排序算法,看这篇就够了
  3. Android的init过程:init.rc解析流程
  4. Python编程专属骚技巧3
  5. Keras报错:`Dense` can accept only 1 positional arguments ('units',), but you passed the followin.....
  6. 转自: http://blog.csdn.net/xiaxiaorui2003/article/details/3838631
  7. 基环树DP(bzoj 1040: [ZJOI2008]骑士)
  8. STL在数组算法的使用
  9. 关于 printf(%*.*s/n,m,n,ch) 的问题
  10. 【Django 2021年最新版教程35】python+request+unittest 对Django接口进行测试
  11. URLDecoder用法
  12. mac os模拟器linux,Mac系统如何启动iOS模拟器 快速启动iOS模拟器教程
  13. java导出帆软pdf,java后台把fineRepo图表导出pdf格式时发生错误!
  14. Android 9(API级别28)特性总结
  15. 华为交换机如何恢复出厂设置
  16. 微信支付小程序支付和APP支付
  17. 台式计算机多少g的显卡怎么看,怎样看电脑配置|怎样看电脑显卡配置?
  18. R数据加工厂-plyr包
  19. 微型计算机断电后信息将会丢失,2018年职称计算机考试题库(20)
  20. oracle vm virtualbox u盘启动,在virtualbox用u盘启动 综合

热门文章

  1. KDD 2021 | Neural Auction: 电商广告中的端到端机制优化方法
  2. c语言在dos下执行bat文件,应用dos批处理文件经常用到的DOS常用命令
  3. 【编译原理】文法分类
  4. 抖音云控_抖音云控/快手云控:引领5G电商短视频新潮流
  5. 保镖机器人作文_我的小保镖作文500字
  6. java list 接口_Java 集合 List接口
  7. Linux下载源码编译出错,linux下fortran中编译代码时“undefined reference to `_gfortran_st_”错误...
  8. 解决Ubuntu IDEA 不能输入中文
  9. codeforce 266c Below the Diagonal 矩阵变换 (思维题)
  10. java个人支付系统(springboot)