真正掌握left join on 和 where 的差别
总结
- 用
where是先连接然后再筛选 - 用
on是先筛选再连接 - 数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。在使用
left jion时,on和where条件的区别如下:on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。
where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。
举例
假设有两张表:
- tab1:
| id | size |
|---|---|
| 1 | 10 |
| 2 | 20 |
| 3 | 30 |
- tab2:
| size | name |
|---|---|
| 10 | AAA |
| 20 | BBB |
| 20 | CCC |
两条SQL:
- select * form tab1 left join tab2 on (tab1.size = tab2.size) where tab2.name=’AAA’
- select * form tab1 left join tab2 on (tab1.size = tab2.size and tab2.name=’AAA’)
第一条SQL的过程:
- 中间表
on条件:
tab1.size = tab2.size
tab1.id | tab1.size | tab2.size | tab2.name |
|---|---|---|---|
| 1 | 10 | 10 | AAA |
| 2 | 20 | 20 | BBB |
| 2 | 20 | 20 | CCC |
| 3 | 30 | (null) | (null) |
- 再对中间表进行过滤
where条件:
tab2.name= ’AAA’
tab1.id | tab1.size | tab2.size | tab2.name |
|---|---|---|---|
| 1 | 10 | 10 | AAA |
第二条SQL的过程:
- 中间表
on条件:
tab1.size = tab2.size and tab2.name=’AAA’
(条件不为真也会返回左表中的记录)
tab1.id | tab1.size | tab2.size | tab2.name |
|---|---|---|---|
| 1 | 10 | 10 | AAA |
| 2 | 20 | (null) | (null) |
| 3 | 30 | (null) | (null) |
结论
其实以上结果的关键原因就是left join,right join,full join的特殊性,不管on上的条件是否为真都会返回left或right表中的记录,full则具有left和right的特性的并集。 而inner jion没这个特殊性,则条件放在on中和where中,返回的结果集是相同的。
相关文章:
真正掌握left join on 和 where 的差别
总结 用 where 是先连接然后再筛选用 on 是先筛选再连接数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。在使用left jion时,on和where条件的区别如下: on条件是在生成临时表…...
神经网络在多分类问题中的应用
作者简介:热爱数据分析,学习Python、Stata、SPSS等统计语言的小高同学~个人主页:小高要坚强的博客当前专栏:Python之机器学习本文内容:神经网络在多分类问题中的应用作者“三要”格言:要坚强、要努力、要学习 目录 1. 引言 2.数据构造 3.划分数据集 4.神经网络实现多…...
nginx的安装和使用
源码安装 1.环境准备:卸载其他方式安装的web应用,防止端口冲突 2.下载nginx源码包 wget https://nginx.org/download/nginx-1.20.2.tar.gz 3.源码编译安装 yum install -y gcc pcre-devel zlib-devel #安装依赖包 useradd -M -s /sbin/nologin ngi…...
js采用覆盖键、覆盖鼠标滑动事件实现禁止网页通过 ctrl + +/- 和 ctrl + 滚轮 对页面进行缩放
一、兼容电脑端的禁止通过 ctrl /- 和 ctrl 滚轮 对页面进行缩放 const keyCodeMap {// 91: true, // command61: true,107: true, // 数字键盘 109: true, // 数字键盘 -173: true, // 火狐 - 号187: true, // 189: true, // -};二、覆盖ctrl||command ‘’/‘-’ // 覆…...
某客户Oracle RAC无法启动故障快速解决
某日,9:50左右接到好友协助需求,某个客户Oracle RAC无法启动,并发过来一个报错截图,如下: 和客户维护人员对接后,远程登录服务端进行故障分析。 查看hosts信息,首先进行心跳测试,测…...
【计算机网络 - 基础问题】每日 3 题(二十八)
✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏&…...
探索甘肃非遗:Spring Boot网站开发案例
1 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管理。这样的大环境让那些止步不前&#…...
产品管理- 互联网产品(6):产品测试
可用性测试 招募有代表性用户作为测试代表参与者,评估某产品符合特定可用性及符合程度。以具有代表性的用户为测试样本。 测试中多关注用户表情与动作。多鼓励与测试的用户更多的操作以用户角度发现问题。同时要做好询问工作,耐心聆听用户的意见&#x…...
奖金高达 110 万元,Spatial Joy 2024 全球 AR 应用开发大赛启动
今年是AR应用开发大赛第三届,恰逢Rokid成立十周年,我们推出全新的大赛品牌“Spatial Joy”,引领开发者享受开发乐趣,为其打造充满挑战和惊喜的开发之旅,逐渐成为空间计算时代全球最大AR应用开发大赛。回顾大赛发展&…...
git add成功后忘记commit的文件丢了?
本文目标:开发人员,在了解git fsck命令用法的条件下,进行git add成功但由于误操作导致丢失的文件找回,达到找回丢失文件的程度。 文章目录 1 痛点2 解决方案3 总结/练习 1 痛点 开发过程中,分支太多(基线分…...
Python Web 开发中的DevOps 实践与自动化运维
Python Web 开发中的DevOps 实践与自动化运维 📚 目录 🔧 基础设施即代码(IaC) 使用 Terraform、AWS CloudFormation 实现基础设施即代码使用 Python 进行云服务资源的管理与自动化配置编写和部署基础设施的自动化脚本 …...
探索私有化聊天软件:即时通讯与音视频技术的结合
在数字化转型的浪潮中,企业对于高效、安全、定制化的通讯解决方案的需求日益迫切。鲸信,作为音视频通信技术的佼佼者,凭借其强大的即时通讯与音视频SDK(软件开发工具包)结合能力,为企业量身打造了私有化聊天…...
性能调优知识点(mysql)三
SQL底层执行原理 MySQL的内部组件结构:大体来说,MySQL 可以分为 Server 层和存储引擎层store两部分 Server层:主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数…...
TinyWebSever项目面试题整理
TinyWebSever项目面试题整理 1.为什么要做这样一个项目? 满足高并发和高性能需求:现代Web应用面对大量用户,Web服务器需要高效处理并发连接。比如通过线程池、非阻塞I/O、事件驱动机制(如epoll),Web服务器…...
维修保养记录接口-维修保养记录API-汽车接口
维修保养记录接口的使用主要涉及到API对接和在线查询两种方式。以下是详细的使用步骤和注意事项: 一、API对接 注册与申请: 首先,你需要在提供维修保养记录接口的平台(如挖数据平台、第三方数据服务商等)进行注册&…...
基于 RealSense D435相机实现手部姿态检测
基于 RealSense D435i相机进行手部姿态检测,其中采用 Mediapipe 进行手部检测,以下是详细步骤: Mediapipe 是一个由 Google开发的开源框架,专门用于构建多媒体处理管道,特别是计算机视觉和机器学习任务。它提供了一系列…...
linux 下mailx 的使用。发送短信
1. 安装 mailx yum install -y mailx 2.请求数字证书 163 邮箱 mkdir -p /root/.certs/ ####创建目录,用来存放证书 echo -n | openssl s_client -connect smtp.163.com:465 | sed -ne /-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p >…...
把网易云音乐的网页源码复制出来,粘贴在hbuilder中,运行于浏览器,为什么没有任何内容显示?
在将网易云音乐的网页源码复制并粘贴到HBuilder中后,如果运行于浏览器时没有任何内容显示,这可能是由于以下几个原因造成的: 1. 外部资源加载问题 资源路径错误:网易云音乐的网页源码中可能包含大量的外部资源链接,如CSS、JavaScript文件、图片等。当这些资源链接的路…...
excel怎么转换json
如何将 Excel 转换为 JSON 方法一:使用内置函数 在 Excel 中选择要转换的数据范围。 转到“数据”选项卡 > “获取外部数据”组 > “自其他来源” > “JSON”。 在“从文件”对话框中,选择要保存 JSON 文件的位置,然后单击“导入”…...
二、认识大模型
认识大模型 什么是大模型?发展趋势AGI是不是泡沫大模型对比【时效】大模型特点大模型技术原理向量化除了向量化,大模型还具有特征提取特点 总结结语 什么是大模型? 大模型是大规模语言模型(Large Language Model)的简…...
技术萨满祭典:给数据中心献祭机械硬盘
一、仪式的缘起:当测试工程师遇见数据之灵在数字文明的殿堂中,数据中心是承载万物之灵的圣地。而软件测试从业者,正是穿梭于代码与硬件之间的现代萨满。当机械硬盘(HDD)在SSD洪流中逐渐退居幕后,这场为老旧…...
【Git技巧】git rebase -i 实战:轻松合并本地提交记录
1. 为什么你需要掌握git rebase -i 每次写完代码提交时,你是不是也经常遇到这种情况:刚提交完就发现有个拼写错误,赶紧又提交一次;或者调试过程中反复提交了好几次"临时保存"。结果git log一看,提交记录乱七…...
PlayCover终极指南:三步在Mac上畅玩iOS游戏与应用
PlayCover终极指南:三步在Mac上畅玩iOS游戏与应用 【免费下载链接】PlayCover Community fork of PlayCover 项目地址: https://gitcode.com/gh_mirrors/pl/PlayCover 还在为心爱的iOS游戏无法在Mac上体验而烦恼吗?PlayCover为你打开了一扇全新的…...
taocms v3.0.2漏洞防御指南:如何避免.htaccess文件被恶意利用
Taocms v3.0.2安全加固实战:从漏洞原理到防御体系构建 当网站管理后台的.htaccess文件成为攻击者的跳板时,系统安全便形同虚设。近期曝光的Taocms v3.0.2远程代码执行漏洞(CVE-2022-25578)正是利用了这一薄弱环节,攻击…...
抖音音乐下载终极指南:3步解决批量音频提取难题
抖音音乐下载终极指南:3步解决批量音频提取难题 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 你是否曾在抖音上听到令人心动的背景音乐,却苦于无法单独保存?或是需要收集…...
# 发散创新:基于群体智能的Python蚁群算法优化路径规划实战在人工智能快速演进的时代,**群体智能(Swarm Int
发散创新:基于群体智能的Python蚁群算法优化路径规划实战 在人工智能快速演进的时代,群体智能(Swarm Intelligence) 作为一类受自然界生物行为启发的计算范式,正逐渐成为解决复杂优化问题的重要工具。本文聚焦于蚁群算…...
Flutter透明视频播放实战:用AlphaPlayer插件5分钟搞定礼物特效
Flutter透明视频播放实战:用AlphaPlayer插件5分钟搞定礼物特效 在移动应用开发中,炫酷的动画效果往往能显著提升用户体验,尤其是在社交、直播和游戏类应用中。透明视频特效作为其中一种高级表现形式,能够实现元素与背景的无缝融合…...
从音乐均衡器到语音降噪:深入浅出玩转数字谐振器设计与MATLAB仿真
从音乐均衡器到语音降噪:深入浅出玩转数字谐振器设计与MATLAB仿真 你是否曾在调整音乐播放器的均衡器时好奇——那些滑动条如何精确控制特定频段的声音强弱?这背后隐藏的数字信号处理魔法,正是我们今天要探索的数字谐振器技术。无论是提取语音…...
Windows 10 实战:基于 FFmpeg + Nginx 构建 RTSP 转 RTMP/HLS 流媒体网关
1. 为什么需要RTSP转RTMP/HLS网关 最近接手了一个监控项目,甲方要求将内网摄像头的实时画面通过网页展示给外网用户。刚开始觉得挺简单,直到发现摄像头输出的是RTSP协议——这玩意儿在浏览器里根本没法直接播放!相信不少做过视频监控开发的同…...
SEO_从入门到精通,掌握SEO的核心操作步骤
<h2>SEO从入门到精通,掌握SEO的核心操作步骤</h2> <p>在当今的互联网时代,搜索引擎优化(SEO)已经成为任何网站或网页希望获得高流量、高曝光的关键技能。无论你是一个初学者,还是已经有一些SEO基础的…...
