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相关推荐

  1. sql语句中left join和inner join中的on与where的区别分析

    原文:sql语句中left join和inner join中的on与where的区别分析 关于SQL SERVER的表联接查询INNER JOIN .LEFT JOIN和RIGHT JOIN,经常会用 ...

  2. SQL的连接(join)有哪些常见形式?解释一下?解释 SQL 的 left join 和 right join?

    SQL的连接(join)有哪些常见形式?解释一下?解释 SQL 的 left join 和 right join? SQL的连接(join)有哪些常见形式? sql连接查询:把多张表的列组合在一起,产 ...

  3. sql之left join、right join、inner join的区别,连接自己时的查询结果测试

    sql之left join.right join.inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录  right join(右联接) 返回包 ...

  4. mysql的left join和inner join的效率对比,以及如何优化

    一.前言 最近在写代码的时候,遇到了需要多表连接的一个问题,初始sql类似于: select * from a left join b on a.x = b.x left join c on c.y ...

  5. SQL性能--left join和inner join的运行速度与效率

    ①大家都知道,sql尽量使用数据量小的表做主表,这样效率高,如果使用数据量大的表做主表,此时使用left join 就会比较慢,即使关联条件有索引.但如果使用inner join速度就较快.因为inn ...

  6. Database之SQLSever:SQL命令实现查询之多表查询、嵌套查询、分页复杂查询,删除表内重复记录数据、连接(join、left join和right join简介及其区别)等案例之详细攻略

    Database之SQLSever:SQL命令实现查询之多表查询.嵌套查询.分页复杂查询,删除表内重复记录数据.连接(join.left join和right join简介及其区别)等案例之详细攻略 ...

  7. Access SQL中Left Join、Right Join和Inner Join的使用

    1.表结构 表A                                     表B 2.Left Join 示例:2.1 Select * From A left join B on A. ...

  8. oracle join详解,inner join和left join之间的区别详解

    前言 关于inner join 与 left join 之间的区别,以前以为自己搞懂了,今天从前端取参数的时候发现不是预想中的结果,才知道问题出在inner join 上了. 需求是从数据库查数据,在 ...

  9. 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条),再 ...

  10. Mysql 优化器内部JOIN算法hash join Nestloopjoin及classic hash join CHJ过程详解

    Mysql hash join之classic hash join CHJ过程详解 hash join的历史 优化器里的hash join算法在SQL Server.Oracle.postgress等 ...

最新文章

  1. selenium 常用操作
  2. 看看HashSet源码
  3. Java assert
  4. 高性能的索引实现——《深究MySQL》
  5. 张俊红数据分析知识体系(持续更新中......)
  6. twisted mysql_Twisted MySQL adbapi返回字典
  7. 力扣 距离顺序排列矩阵单元格
  8. Oracle数据库使用Navicat premium创建用户时遇到的坑
  9. 五、bootstrap-fileinput
  10. easyexcell导出专题
  11. 老男孩Linux笔记,运维/后端/服务器领域
  12. 支持向量机SVM、支持向量回归SVR详细推导
  13. 生物信息学入门 富集分析与蛋白质互作用网络(PPI)的可视化 Cystocape入门指南
  14. 202204读书-《上瘾:让用户养成使用习惯的四大产品逻辑》
  15. Oracle DB audit
  16. freeswitch 模块
  17. Java的学习(下)
  18. 小白起步-大数据环境搭建-Java环境配置
  19. instr,left,mid 定位、取内容(字符串)函数
  20. android中英文切换功能,Android APP 中英文切换

热门文章

  1. 数学学习笔记-三角函数
  2. 26.中继器数据的添加与删除
  3. 0530JavaScript基础2
  4. mysql五-1:单表查询
  5. WebSocket 是什么原理?为什么可以实现持久连接?什么情况使用WebSocket
  6. apk文件编译到系统文件中的方法(及包含so库的)
  7. Linux并发与竞争介绍(原子操作、自旋锁、信号量、互斥体)
  8. Windows使用技巧
  9. java用easyexcel实现读取excell表格内容
  10. nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException(Spring循环依赖问题)