数据库之“on”“where”区别
数据库在通过连接两张或者多张表返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户
在使用inner join(内连接)没有区别,但是 在使用left jion时,on和where条件的区别如下:
1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。(返回左表全部记录)。此时可能会出现与右表不匹配的记录即为空的记录。
2、where条件是在临时表生成好后,再对临时表进行过滤的条件。
假设有两张表:表1:tab1
id
|
size
|
1
|
10
|
2
|
20
|
3
|
30
|
表2:tab2
size
|
name
|
10
|
AAA
|
20
|
BBB
|
20
|
CCC
|
两条SQL:
1、select * form tab1 left join tab2 on (tab1.size = tab2.size) where tab2.name=’AAA’
2、select * form tab1 left join tab2 on (tab1.size = tab2.size and tab2.name=’AAA’)
3、select * from tab1 left join tab2 on (tab1.size = tab2.size and tab2.name='AAA') where tab2.id is not null;
2和3是等价的。只是2中包含了不匹配的结果所有与1不等价。
第一条SQL的过程:
|
第二条SQL的过程:
|
- (转)
转载于:https://www.cnblogs.com/qiaoyanlin/p/6746502.html
数据库之“on”“where”区别相关推荐
- sql server登录名、服务器角色、数据库用户、数据库角色、架构区别联系
原创链接:https://www.cnblogs.com/lxf1117/p/6762315.html sql server登录名.服务器角色.数据库用户.数据库角色.架构区别联系 1.一个数据库用户 ...
- 数仓和mysql的区别_数据库和数据仓库的区别和联系
数据库与数据仓库的区别和联系https://www.zhihu.com/video/1252167793992593408 在以往我们和客户的沟通过程中,大家经常会问到这样的一个问题,数据库和数据仓库 ...
- oracle数据库跟mysql的区别_关于Oracle数据库与MySQL数据库的几点区别
Oracle数据库与MySQL数据库的区别是本文我们主要要介绍的内容,接下来我们就开始介绍这部分内容,希望能够对您有所帮助. Oracle与MySQL的区别: 1.在Oracle中用select * ...
- MySQL数据库引擎介绍、区别、创建和性能测试的深入分析
深入理解MySQL的数据库引擎的类型 作者: 字体:[增加 减小] 类型:转载 本篇文章是对MySQL的数据库引擎的类型进行了详细的分析介绍,需要的朋友参考下 你能用的数据库引擎取决于mysql在 ...
- 星型模型 3nf的区别_数据库和数据仓库的区别和联系
数据库与数据仓库的区别和联系https://www.zhihu.com/video/1252167793992593408 在以往我们和客户的沟通过程中,大家经常会问到这样的一个问题,数据库和数据仓库 ...
- 数据库like和rlike区别
数据库like和rlike区别 like,通配符,使用时需指定具体值.如:用like筛选某张表姓张的人全部信息,或名字叫张三的信息.张或张三就必须写为具体值. rlike,正则,模糊查询.区间范围判断 ...
- 政府信息化与电子政务、企业信息化与电子商务、数据库和数据仓库的区别、商业智能系统处理过程、数据仓库结构图、数据挖掘、数据仓库和数据湖的对比
政府信息化与电子政务.企业信息化与电子商务.数据库和数据仓库的区别.商业智能系统处理过程.数据仓库结构图.数据挖掘.数据仓库和数据湖的对比 政府信息化与电子政务 企业信息化与电子商务 1.企业资源计划 ...
- mysql数据库有哪些版本_MySQL数据库各个版本的区别
MySQL数据库各个版本的区别 MySQL数据库 MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管 ...
- 关系型数据库和非关系型区别
一.关系型数据库和非关系型 1.数据存储方式不同. 关系型数据天然就是表格式的,因此存储在数据表的行和列中,结构化存储. 非关系型数据通常存储在数据集中,就像文档.键值对.列存储.图结构. 2.扩展方 ...
- 数据库种类大全及区别
数据库种类大全及区别: [备注:鸣谢链接:https://blog.csdn.net/aaronthon/article/details/81714528] 一. 数据库共有2种类型:关系型数据库.非 ...
最新文章
- 关于Linux中文件权限的探究
- vue启动时报错,node-modules下xxx缺失
- FFmpeg从入门到精通:SEI那些事
- 谁是现在最年轻的院士?
- 数据库导出到excel解决科学计数法问题
- java优先级队列使用
- (4)FPGA面试题同步逻辑和异步逻辑
- python framebuffer_Linux中LCD设备驱动
- 解封装(五):AVStream和AVCodecParameters分析
- 【编程语言】Python-Pandas库中的透视表
- 语音识别市场竞争激烈,亚马逊崛起与微软衰落形成反差
- 计算机系统组成导学案,单元一任务2认识计算机系统的组成导学案.pdf
- java 去除敏感词
- CSS命名规范--BEM
- 爬取雪球网的新闻数据
- 1到10加法创新图片-走迷宫_“小火锅+关东煮”,呷哺呷哺又创新模式!客单提到110元!...
- 内网安全 域环境的搭建(模仿真实内网环境 做渗透测试.)
- python爬虫 — 爬取豆瓣最受关注图书榜
- IT行业里的热门技术 | 热门IT技术项目分享 | 详细介绍一下机器人技术
- 大闸蟹的 O O 第三单元日子——中测与强测的惨烈修罗场
热门文章
- 内存碎片过高优化的功能和原理
- html双击单元格修改,JS实现鼠标双击选中表格单元格代码
- ruoyi 多模块部署_基于若依(RuoYi)脚手架的前端项目部署(vue)
- vue 打印出来但显示未定义_CAD图形能显示却打印不出来如何解决?
- 使用adb命令结束android中的进程,两种方法 kill -9 和 am force-stop的相同与区别
- 阅读分布式锁文章总结
- qml调用python_QML使用Python的函数
- 组态王通过串口服务器通讯smart200_实例讲解通过代码调试串口通讯的方法
- Spring源码之bean的加载(一)
- 【渝粤教育】国家开放大学2018年秋季 0221-22T数字电子电路 参考试题