MySQL:left join后用on与where的区别

一、前言

  前几天项目中,写SQL时本想通过 A left B join on and 后面的条件来使查出的两条记录变成一条,奈何发现还是有两条。在此记录一下,on与where的区别。

二、ON

原始数据展示

SELECT t1.*,t2.* FROM  t_test_staff t1 left join t_test_department t2 on t1.departmentId = t2.id and t;

查询结果
在这里插入图片描述

ON后面跟and,左表条件

SELECT t1.*,t2.* FROM  t_test_staff t1 left join t_test_department t2 on t1.departmentId = t2.id and t1.name = '员工1';

查询结果
在这里插入图片描述

ON后面跟and,右表条件

SELECT t1.*,t2.* FROM  t_test_staff t1 left join t_test_department t2 on t1.departmentId = t2.id and t2.departmentName = '研发部';

查询结果
在这里插入图片描述

  ON 条件用于定义两个表之间的连接条件,它决定了哪些行会被连接在一起。在 LEFT JOIN 中,ON 条件决定了右表(被连接的表)中的哪些行会被匹配到左表(主表)的行。

  在这个例子中,Table1 中的每一行都会出现在结果集中,无论 Table2 中是否有匹配的行。如果 Table2 中有匹配的行,则这些行的数据会被包含进来;如果没有匹配的行,则 Table2 的列会显示为 NULL。

三、where

on后面跟where,左表条件

SELECT t1.*,t2.* FROM  t_test_staff t1 left join t_test_department t2 on t1.departmentId = t2.id where t1.name = '员工1';

查询结果
在这里插入图片描述

on后面跟where,右表条件

SELECT t1.*,t2.* FROM  t_test_staff t1 left join t_test_department t2 on t1.departmentId = t2.id where t2.departmentName = '研发部';

查询结果
在这里插入图片描述

  WHERE 条件用于过滤结果集,它在连接操作之后应用。这意味着 WHERE 条件会进一步筛选已经通过 ON 条件连接好的结果集。

  在这个例子中,LEFT JOIN 依然会先执行,将 Table1 中的每一行与 Table2 中的匹配行连接起来(如果有的话)。然后,WHERE 条件会过滤掉那些 Table2.some_column 为 NULL 的行。

  由于 LEFT JOIN 保证了 Table1 中的每一行都会出现在结果集中,WHERE 条件实际上将结果集转换为了一个类似于 INNER JOIN 的结果集,因为它排除了所有 Table2 中没有匹配行的 Table1 行(即 Table2 列值为 NULL 的行)。

四、总结

  ON 条件:用于定义连接条件,决定如何连接两个表。在 LEFT JOIN 中,它会保留左表中的所有行,并根据条件匹配右表中的行。

  WHERE 条件:用于过滤结果集,它在连接操作之后应用。在 LEFT JOIN 中,使用 WHERE 条件可以进一步筛选结果集,但需要注意它会排除所有不满足条件的行,包括那些由于 LEFT JOIN 而产生的 NULL 值行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/14003.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

ANX9833FN-AA-R ANX9833 ANALOGIX QFN48 VGA视频转换器件

ANX9833概述:ANX9833是VGA显示接口适配器集成电路设计一个显示端口1.2/1.1源连接到一个VGA显示。与芯片上的单片机和记忆,ANX9833不需要任何外部配置或设置。它自动引导VGA显示接口适配器的输出,有效地处理所有类型的遗产显示器、投影仪,和电视。ANX9833提供Gbps带宽在两车道到…

2025全平台短剧系统 : 快手、抖音、微信全覆盖

之前,我曾详细阐述过公司短剧系统的一些功能,它们共同构建了一个全面、高效的短剧制作与运营平台。这些功能,无论是媒资管理、剧场设定,还是后期运营,都是经过深思熟虑、精心设计的,是一个成熟的短剧系统所…

机圈白刃战,vivo聚势成风

金秋十月,国产手机市场进入了空前激烈的竞争局势,几乎每天都有发布会,甚至隔段时间就有新机话题登上热搜。网友戏称,发布会密度高到“工作日都不够用了”。 10月14日,vivo X200系列率先登场,拉开了国产旗舰…

scp 或 ssh 报错no matching host key type found. Their offer: ssh-rsa 解决方案

报错如下: 解决方案: 在 scp 或 ssh 命令后面增加参数: -o HostKeyAlgorithmsssh-rsa 可以解决此问题, scp格式如下: scp -o HostKeyAlgorithmsssh-rsa [local_file_path] [user][hosts]:[remote_path]

ElasticSearch概述

ElasticSearch概述 Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使…

一文彻底了解UDHCP源码核心☝️

🍄参考学习: udhcp源码剖析(一)——DHCP服务器和客户端的工作流程_udhcpc源码v1.29.2-CSDN博客 前言介绍 本文深入探讨了DHCP服务器和客户端的工作流程,以udhcp为例,详细阐述了udhcpd(服务器)…

开启鸿蒙开发之旅:静态页面搭建

写在前面 了解了一些常用的系统组件及其属性之后,我准备开始搭建我第一个页面,本次鸿蒙Next初体验我准备模仿这款“提醒事项”APP,从页面搭建到基本功能实现。今天从入口页开始: 布局思路 整体结构 从该页面的整体布局结构来看&…

C++20 STL CookBook 7 Containers(II)

让vector在插入删除的时候仍然保证是有序的 首先&#xff0c;STL的确提供了一种办法来检查我们的目标容器是不是有序的&#xff1a;std::is_sorted - cppreference.com&#xff0c;也就是std::is_sorted。我们当然可以这样做&#xff1a; #include <iostream> #include…

二叉树搜索树(下)

二叉树搜索树&#xff08;下&#xff09; 二叉搜索树key和key/value使用场景 key搜索场景 只有key作为关键码&#xff0c;结构中只需要存储key即可&#xff0c;关键码即为需要搜索到的值&#xff0c;搜索场景只需要判断 key在不在。key的搜索场景实现的二叉树搜索树支持增删查…

人力资源招聘系统-提升招聘效率与质量的关键工具

在当今这个竞争激烈的商业环境中&#xff0c;企业要想在市场中立于不败之地&#xff0c;关键在于拥有高素质的人才队伍。然而&#xff0c;传统的招聘方式往往效率低下&#xff0c;难以精准匹配企业需求与人才特质&#xff0c;这无疑给企业的发展带来了不小的挑战。 随着科技的飞…

【C++】类中的“默认成员函数“--构造、析构、赋值

目录 概念引入&#xff1a; 一、构造函数 问题引入&#xff1a; 1&#xff09;构造函数的概念 2&#xff09;构造函数的特性 二、析构函数 1&#xff09;析构函数概念 2&#xff09;析构函数特性 三、拷贝构造函数 1)拷贝构造函数概念 示例代码&#xff1a; 2)深拷…

环丙烷环辛炔聚乙二醇磷脂,淡黄色固体,BCN-PEG-DSPE

中文名称&#xff1a;环丙烷环辛炔聚乙二醇磷脂 英文名称&#xff1a;BCN-PEG-DSPE 外观&#xff1a;通常为黄色或淡黄色固体 材料来源&#xff1a;为华生物 溶解性&#xff1a;在有机溶剂&#xff08;如氯仿、乙醇&#xff09;中具有良好的溶解性&#xff0c;而在水中的溶…

202409电子学会青少年机器人技术等级考试(六级)理论综合真题

青少年机器人技术等级考试理论综合试卷&#xff08;六级&#xff09; 分数&#xff1a; 100 题数&#xff1a; 30 一、 单选题(共 20 题&#xff0c; 共 80 分) 1. 使用 ESP32 for Arduino SPI 类库&#xff0c; 下列选项中&#xff0c; 具有设置时钟模式功能的成员函数是&…

如何学习VBA_3.2.14:字符串的处理

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的劳动效率&#xff0c;而且可以提高数据处理的准确度。我推出的VBA系列教程共九套和一部VBA汉英手册&#xff0c;现在已经全部完成&#xff0c;希望大家利用、学习。 如果…

ABeam News | ABeam中国受邀参加2024中国知识管理年会暨第14届China MIKE颁奖典礼,并荣获大奖

“ABeam/ News ” 近日&#xff0c;2024中国知识管理年会暨第14届China MIKE颁奖典礼圆满召开&#xff0c;大会结合AI赋能新质生产力的热点话题&#xff0c;以“AI超能力KM新价值” 作为主题&#xff0c;为与会观众带来知识管理的一场盛宴。ABeam中国受邀参会并荣获2024 China…

Error: Could not find or load main class org.apache.catalina.startup.Bootstrap

#现象&#xff1a; 官网下载tomcat source包后&#xff0c;启动报错&#xff0c;等一系列缺包造成服务无法启动 Error: Could not find or load main class org.apache.catalina.startup.Bootstrapjava.lang.ClassNotFoundException: org.apache.juli.logging.LogFactory原因 …

论文解读《CTRLsum: Towards Generic Controllable Text Summarization》

引言&#xff1a;一篇上交大佬的著作 ✅ NLP 研 2 选手的学习笔记 笔者简介&#xff1a;Wang Linyong&#xff0c;NPU&#xff0c;2023级&#xff0c;计算机技术 研究方向&#xff1a;文本生成、大语言模型 论文链接&#xff1a;https://aclanthology.org/2022.emnlp-main.396.…

【spotfire】脚本相关

文章目录 ironpython脚本使用JS实现弹出窗口思路实现效果 脚本的使用可以极大扩展spotfire的功能&#xff0c;但如何使用脚本一直不得其门而入&#xff0c;咨询厂商、查询资料&#xff0c;特此记录备忘。 ironpython脚本使用 参见官网教程&#xff1b; 部分参考资料如下&#…

嵌入式硬件杂谈(一)-推挽 开漏 高阻态 上拉电阻

引言&#xff1a;对于嵌入式硬件这个庞大的知识体系而言&#xff0c;太多离散的知识点很容易疏漏&#xff0c;因此对于这些容易忘记甚至不明白的知识点做成一个梳理&#xff0c;供大家参考以及学习&#xff0c;本文主要针对推挽、开漏、高阻态、上拉电阻这些知识点的学习。 目…

RCAgent:云故障根因分析的自主智能体工具增强型大模型

人工智能咨询培训老师叶梓 转载标明出处 由于云上计算部署的不断扩展&#xff0c;手动在线异常RCA工作流程&#xff0c;如创建故障排除工具&#xff0c;常常使网站可靠性工程师&#xff08;SRE&#xff09;应接不暇。为了提高云服务可靠性效率&#xff0c;一系列人工智能运维&…