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设置客户端使用IP地址登录的图文详解(SQLServer设置客户端使用IP地址登录的图文详解)
- sqlserver备份还原数据(通过Windows批处理命令执行SQL Server数据库备份)
- mysql索引优化有哪些(MySQL如何基于Explain关键字优化索引功能)
- mysqlexplain的用法(MySQL SHOW STATUS语句的使用)
- mysql怎么做教材信息管理系统(python+mysql实现学生信息查询系统)
- sql分区原理(分区表场景下的 SQL 优化)
- sql server2012自动备份(SQL SERVER 2012数据库自动备份的方法)
- sqlserver数据库备份怎么还原(SQL Server2012数据库备份和还原的教程)
- mysql的存储方法(MySQL中的binary类型使用操作)
- mysql索引失效原因(MySQL索引失效的几种情况详析)
- mysql内部有4种常见日志(MySQL 慢日志相关知识总结)
- mysql5.5.36版本介绍(WDCP控制面板升级mysql为5.7.11的方法)
- sqlserver表分区步骤(行转列之SQL SERVER PIVOT与用法详解)
- mysql怎么创建联合索引(mysql的联合索引复合索引的实现)
- mysql为什么用decimal类型(MySQL decimal unsigned更新负数转化为0)
- sqlserver表导入数据(在SQLserver数据库之间进行传表和传数据的图文教程)
- 天热没胃口 这道菜开胃又下饭,2个小技巧新手一学就会(这道菜开胃又下饭)
- 指天椒紫苏爆炒牛肉(指天椒紫苏爆炒牛肉)
- 谷雨前,吃牛羊肉别忘了吃河鲜,除湿还清热,加紫苏一炒特解馋(吃牛羊肉别忘了吃河鲜)
- 紫苏牛肉锅里滚一滚,香的鼻子都要掉了(紫苏牛肉锅里滚一滚)
- 每天都吃水果的好处(每天吃水果的好处与功效)
- 苹果15价格(苹果15价格512g官网)
热门推荐
- javascript页面滚动窗口(javascript实现简单滚动窗口)
- 常用web服务器与简介(最流行的5大开源web服务器)
- vue图片怎么上传服务器(vue-cropper组件实现图片切割上传)
- 推荐一款好用的项目管理系统:禅道项目管理系统
- js数组排序有哪些(js将多维数组转为一维数组后去重排序)
- mysql程序中判断select返回空值(解决MySQL读写分离导致insert后select不到数据的问题)
- h5嵌入app解决方案(app内嵌H5 webview 本地缓存问题的解决)
- 能自动点赞的小程序(python实现QQ空间自动点赞功能)
- python学生管理系统与数据库(python学生管理系统学习笔记)
- mysql修改表内字段的数据类型(mysql修改记录时update操作 字段=字段+字符串)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9