如何使用left join,以及left join的分析
第一步,新建四张表
人员表 职位表 组别表 人员职位关联表
以上四张表纯属瞎建
如果我们需要查询所有人员的组别职位信息,我们又多种解决方式,我这边先写两种
第一种:
第二种:
从这我们就可以看出第一个区别,当我们使用第一种方法的时候,如果关联表中没有出现与左表关联的数据,那么结果是不会显示该条数据的,而用left join,左表不论后面的条件有没有关联数据,都会显示出来该表所有数据,这么说可能比较麻烦,我直接用数据给大家演示一下
on代表的是临时条件,也就是在建立临时表的时候的判断条件,不管on的条件是不是为真,都会返回左表数据,我们先来测试这个
我们看到前面正常查询是没有问题的,对应的,当我们的on条件不存在的时候,我们还是可以看到左表的所有数据,这就是on的作用,只是限定了右表的显示条件,并不会影响到左表数据
on条件的后面还可以添加and条件,我们也可以来试验一下
我们发现,同样的不管and条件是否符合左表都会完全显示,只是对右表的数据进行了筛选,那如果我们不需要显示为空的呢,那我们可以直接将and换为where,因为where是对生成的临时表的数据进行限制,但是如果这样我们也可以直接使用第一种方法,毕竟使用left join最重要的一点就是因为left join可以将我们需要的数据完全显示而不需要太多考虑判断条件
right join,full join,inner join,cross join基本上差不多
如何使用left join,以及left 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等 ...
最新文章
- EyeDropper 开发实践
- Java基础知识回顾之七 ----- 总结篇
- jdeveloper_适用于JDeveloper 11gR2的Glassfish插件
- 每个努力奋斗过的人,被不公正的际遇砸了满头包的时候,都有那么一瞬间的代入感。出生就是hard模式的人,早已经历了太多的劳其筋骨饿其体肤,再多的人为考验只会摧毁人对美好的向往。...
- 虚拟化系列-VMware vSphere 5.1 虚拟机管理
- java持续集成soapui_接口自动化测试持续集成--Soapui接口功能测试参数化
- 图像识别实战——天气分类
- oracle标准正态分布函数,标准正态分布表 弄明白什么是标准正态分布
- Interactive Path Reasoning on Graph for Conversational Recommendation阅读笔记
- 为什么要给软件做测试?如何测试呢?
- [已解决]阿里云安全组开放端口,宝塔面板仍无法访问
- MySQL 中删除重复数据只保留一条
- 按键控制开关4017芯片数字电路
- 35岁到40岁,如何突破
- Oracle_Linux of Creation hr user for Oracle 18c oracle 练习的账户(hr user)
- 超5亿中国人的熬夜大赏,快看有你吗?
- Revit二次开发学习笔记
- Python-国内华为云下载一览表
- 【“工业大数据预测”系列】——第2篇:异常数据处理
- opencv生成3d模型_OCR深度实践系列:数据生成