left join 和 inner join
2019独角兽企业重金招聘Python工程师标准>>>
left join 和 inner join
首先 MySQL 中 inner join 的效率确实要高于 left join。所以没必要使用 left join 转弯成 inner join 的效果。这样不但效率降低,可读性也会降低。
Number1
select
from t1 left join t2
where t2.field = value
Number2
select
from t1 left join t2 and t2.field = value
这两种写法涉及到一个条件位置不同查询结果就不一致的问题,Number1的意思其实和使用 inner join 效果是一致的,因为他对连接的结果做了过滤;
Number2 则是先对 t2 做过滤,然后再连接,所以他的结果集要大于 Number1,换句话说Number2的条件是强加在 t2 上的,而不是整个结果集。
另外,如果把查询条件改为 t2.field is null ; 前者与后者的结果是一致的,都是表示存在 t1 不存在 t2,所以这个比较特殊。
总之尽量不要使用 left join,除非业务需要,否则尽量使用 inner join.
转载于:https://my.oschina.net/heweipo/blog/1083430
left join 和 inner join相关推荐
- sql语句中left join和inner join中的on与where的区别分析
原文:sql语句中left join和inner join中的on与where的区别分析 关于SQL SERVER的表联接查询INNER JOIN .LEFT JOIN和RIGHT JOIN,经常会用 ...
- SQL的连接(join)有哪些常见形式?解释一下?解释 SQL 的 left join 和 right join?
SQL的连接(join)有哪些常见形式?解释一下?解释 SQL 的 left join 和 right join? SQL的连接(join)有哪些常见形式? sql连接查询:把多张表的列组合在一起,产 ...
- sql之left join、right join、inner join的区别,连接自己时的查询结果测试
sql之left join.right join.inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包 ...
- mysql的left join和inner join的效率对比,以及如何优化
一.前言 最近在写代码的时候,遇到了需要多表连接的一个问题,初始sql类似于: select * from a left join b on a.x = b.x left join c on c.y ...
- SQL性能--left join和inner join的运行速度与效率
①大家都知道,sql尽量使用数据量小的表做主表,这样效率高,如果使用数据量大的表做主表,此时使用left join 就会比较慢,即使关联条件有索引.但如果使用inner join速度就较快.因为inn ...
- Database之SQLSever:SQL命令实现查询之多表查询、嵌套查询、分页复杂查询,删除表内重复记录数据、连接(join、left join和right join简介及其区别)等案例之详细攻略
Database之SQLSever:SQL命令实现查询之多表查询.嵌套查询.分页复杂查询,删除表内重复记录数据.连接(join.left join和right join简介及其区别)等案例之详细攻略 ...
- Access SQL中Left Join、Right Join和Inner Join的使用
1.表结构 表A 表B 2.Left Join 示例:2.1 Select * From A left join B on A. ...
- oracle join详解,inner join和left join之间的区别详解
前言 关于inner join 与 left join 之间的区别,以前以为自己搞懂了,今天从前端取参数的时候发现不是预想中的结果,才知道问题出在inner join 上了. 需求是从数据库查数据,在 ...
- Mysql 优化器内部JOIN算法hash join On-Disk Hash Join Grace Hash Join Hybrid hash join过程详解
Mysql 各种hash join算法讲解 hash join的概述 提到hash join之前自然得说Nest loop join,以两个表的关联为例,它其实是个双层循环,先遍历外层的表(n条),再 ...
- Mysql 优化器内部JOIN算法hash join Nestloopjoin及classic hash join CHJ过程详解
Mysql hash join之classic hash join CHJ过程详解 hash join的历史 优化器里的hash join算法在SQL Server.Oracle.postgress等 ...
最新文章
- selenium 常用操作
- 看看HashSet源码
- Java assert
- 高性能的索引实现——《深究MySQL》
- 张俊红数据分析知识体系(持续更新中......)
- twisted mysql_Twisted MySQL adbapi返回字典
- 力扣 距离顺序排列矩阵单元格
- Oracle数据库使用Navicat premium创建用户时遇到的坑
- 五、bootstrap-fileinput
- easyexcell导出专题
- 老男孩Linux笔记,运维/后端/服务器领域
- 支持向量机SVM、支持向量回归SVR详细推导
- 生物信息学入门 富集分析与蛋白质互作用网络(PPI)的可视化 Cystocape入门指南
- 202204读书-《上瘾:让用户养成使用习惯的四大产品逻辑》
- Oracle DB audit
- freeswitch 模块
- Java的学习(下)
- 小白起步-大数据环境搭建-Java环境配置
- instr,left,mid 定位、取内容(字符串)函数
- android中英文切换功能,Android APP 中英文切换
热门文章
- 数学学习笔记-三角函数
- 26.中继器数据的添加与删除
- 0530JavaScript基础2
- mysql五-1:单表查询
- WebSocket 是什么原理?为什么可以实现持久连接?什么情况使用WebSocket
- apk文件编译到系统文件中的方法(及包含so库的)
- Linux并发与竞争介绍(原子操作、自旋锁、信号量、互斥体)
- Windows使用技巧
- java用easyexcel实现读取excell表格内容
- nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException(Spring循环依赖问题)