left join on和where的区别
类别:数据库 浏览量:2178
时间:2016-6-3 left join on和where的区别
left join on和where的区别一、在使用join连表查询时,如果使用 inner join,则on和where的效果是一样的,如果使用 left join,则有如下区别
1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录,这点尤其需要注意
2、where条件是在 left join 临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。
二、通过实例说明两者的区别
1、假设有两张表
select * from tab1 left join tab2 on tab1.size = tab2.size where tab2.name='AAA'
执行过程
(1)、中间表
on条件: tab1.size = tab2.size
产生的数据如图
(2)、再对中间表过滤
where 条件:tab2.name='AAA'
(3)、最终结果
3、left join where的SQL语句:
select * from tab1 left join tab2 on tab1.size = tab2.size and tab2.name='AAA'
执行过程
(1)、中间表
on条件:
tab1.size = tab2.size and tab2.name='AAA'
(条件不为真也会返回左表中的记录)
(2)、最终结果
标签:SQL
您可能感兴趣
- sqlserver 高级查询(SQL Server2019数据库之简单子查询的具有方法)
- 忘记mysql密码怎么登录(Mysql用户忘记密码及密码过期问题的处理方法)
- mysql如何删除外键约束数据(MySQL中外键的创建、约束以及删除)
- centos如何安装mysql8.0版本(Centos7下安装MySQL8.0.23的步骤小白入门级别)
- 了解mysql数据自动备份(MySQL数据备份方法的选择与思考)
- mysqljoin默认是什么(mysql-joins具体用法说明)
- SQL中的注释
- MySQL自定义函数
- mysql程序中判断select返回空值(解决MySQL读写分离导致insert后select不到数据的问题)
- mysql5.7.20非安装版教程(MySQL5.5 部署的一个问题)
- mysql一主两从架构(MySQL主从搭建多主一从的实现思路与步骤)
- mysql字符串的表示方法(详解mysql中的字符集和校验规则)
- SQLServer日期函数总结案例详解(SQLServer日期函数总结案例详解)
- sqlserver判断null(SQL Server索引超出了数组界限的解决方案)
- python与mysql的联系(MySQL和Python交互的示例)
- Sql Server判断函数、存储过程等是否存在
- 每日一典 过江之鲫(每日一典过江之鲫)
- 红色代表什么(红色代表什么意义和象征)
- 菲律宾安全吗(菲律宾安全吗2023)
- 彩礼重要吗()
- 写信告诉我今天海是什么颜色(写信告诉我今天海是什么颜色回答)
- 英语难学吗(法语比英语难学吗)
热门推荐
- python怎么抽取微信图片(Python 一键制作微信好友图片墙的方法)
- css设计文本框及按钮样式(CSS仿网易首页的头部菜单栏按钮和三角形制作方法)
- 微信小程序图片加特效(微信小程序实现可实时改变转速的css3旋转动画实例代码)
- docker配置和管理(Docker 容器监控原理及 cAdvisor的安装与使用说明)
- css3动画时间(css3实现的天气图标动画效果)
- ftp上传文件权限设置(FTP二进制上传是什么意思?设置并使用二进制BINARY上传?)
- nginx代理转发域名(Nginx域名转发使用场景代码实例)
- 怎么用apache自定义网站根目录(Apache 二级域名实现方法介绍)
- centos7离线安装mysql5.7(CentOS7.5 安装MySql的教程)
- html5如何控制内容(html5拖拽应用记录及注意点)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9