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
您可能感兴趣
- sql server中的死锁
- sqlserver 创建数据库链接(SqlServer数据库远程连接案例教程)
- Sql Server事件探查器的作用
- mysql 排序源码(MySQL排序原理和案例详析)
- spark sql常用操作(Spark SQL数据加载和保存实例讲解)
- sqlserver 比较日期(解析SQL Server中SQL日期转换出错的原因)
- mysql类型转换函数推荐(mysql 数据类型转换的实现)
- 将SQL Server数据迁移到MySQL的常见工具
- SQL数据库存储过程示例解析(SQL数据库存储过程示例解析)
- sql如何合并多个表中的数据(SQL 列不同的表查询结果合并操作)
- sql server 2012 错误5123(SQL SERVER 9003错误解决方法)
- mysql添加数据很慢(mysql如何优化插入记录速度)
- SQL中FOR XML PATH
- mysql数据库主键选择的详解(图文详解MySQL中的主键与事务)
- sqlserver去除空格函数(sqlServer实现去除字符串空格)
- sqlserver调试存储过程(sql server2008调试存储过程的完整步骤)
- 重庆旅游攻略(重庆旅游3-4天攻略最佳线路)
- 周杰伦演唱会门票(周杰伦演唱会门票多少钱一张2023)
- 焕然一新 成都轨道集团官方网站改版上线(成都轨道集团官方网站改版上线)
- 成都轨道交通19号线二期全线电通(成都轨道交通19号线二期全线电通)
- 19号线二期全线电通 轨道交通项目最新进展来了(19号线二期全线电通)
- 涉及3条地铁线路 成都这4座轨道交通站点有新名字了(涉及3条地铁线路)
热门推荐
- 搭建nuget服务器
- python函数参数讲解(Python高级特性与几种函数的讲解)
- pythonpulp怎么使用(pyhanlp安装介绍和简单应用)
- mysql cache(MySQL取消了Query Cache的原因)
- python mysql配置(详解python校验SQL脚本命名规则)
- linuxread指令(Linux read命令的使用)
- MySQL中查询数据库的大小
- docker常用命令详解(docker常用命令总结推荐)
- thinkphp5.1手动连接mysql数据库(thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例)
- 如何用python做一个弹窗(python实现祝福弹窗效果)