第18章 EXISTS 与 NOT EXISTS 关键字
一、EXISTS 关键字介绍
| 关键字 | 介绍 |
| EXISTS | 关联子查询通常也会和 EXISTS操作符一起来使用,用来检查在子查询中是否存在满足条件的行。 如果在子查询中当前的行不满足条件:返回 FALSE,继续在子查询中查找 如果在子查询中当前的行满足条件:不在子查询中继续查找,条件返回 TRUE |
| NOT EXISTS | NOT EXISTS关键字表示如果不存在某种条件,则返回TRUE,否则返回FALSE。 |
二、案例解释
2.1 示例一
查询公司管理者的employee_id,last_name,job_id,department_id信息。
# 方式一:自连接
SELECT DISTINCT e2.employee_id,e2.last_name,e2.job_id,e2.department_id
FROM employees e1 JOIN employees e2
ON e1.manager_id = e2.employee_id# 方式二:子查询
SELECT employee_id,last_name,job_id,department_id
FROM employees
WHERE employee_id IN (SELECT DISTINCT manager_idFROM employeesWHERE manager_id IS NOT NULL
)# 方式三:使用EXISTS
SELECT employee_id,last_name,job_id,department_id
FROM employees e1
WHERE EXISTS (SELECT *FROM employees e2WHERE e1.employee_id = e2.manager_id
)
#解释:从e1中传入一条数据到子查询中,依次取出e2中的数据与该条数据对比
# 如果不满足条件,返回FALSE,继续子查询中的下一条数据。
# 如果满足条件,返回TRUE,结束子查询。继续外查询的下一条数据。
2.2 示例二
查询departments表中,不存在于employees表中的部门的department_id和department_name
# 方式一:使用 NOT IN
SELECT department_id,department_name
FROM departments
WHERE department_id NOT IN (SELECT DISTINCT department_idFROM employeesWHERE department_id IS NOT NULL
)
#解释:NOT IN 判断的是会不会在子查询结果的集合中,会先将子查询执行完毕得出结果集合,
# 然后拿外查询中的每一条在子查询的结果集中查找。所以是不相关子查询。没必要与外部表
# 建立筛选条件。 所以使用NOT IN时,要注意子查询结果不要有空值,否则最终不会有结果。# 方式二:使用 NOT EXISTS
SELECT department_id,department_name
FROM departments d1
WHERE NOT EXISTS (SELECT *FROM employees e2WHERE d1.department_id = e2.department_id
)
相关文章:
第18章 EXISTS 与 NOT EXISTS 关键字
一、EXISTS 关键字介绍 关键字介绍EXISTS 关联子查询通常也会和 EXISTS操作符一起来使用,用来检查在子查询中是否存在满足条件的行。 如果在子查询中当前的行不满足条件:返回 FALSE,继续在子查询中查找 如果在子查询中当前的行满足条件&…...
Windows多JDK版本管理工具JVMs
Windows多JDK版本管理工具JVMs 官网安装使用手动下载jdk 官网 https://github.com/ystyle/jvms 下载 https://github.com/ystyle/jvms/releases 当前下载版本为v2.1.6 安装 下载后,解压到某个目录。 比如:D:\soft\JVMs\jvms_v2.1.6_amd64 把这个目录…...
【C++】初始化列表、类型转换
目录: 一、const成员函数 二、初始化列表 三、类型转换 正文 一、const成员函数 (1)将const修饰的成员函数称之为const成员函数,const修饰成员函数放到成员函数参数列表的后⾯。至于为什么这么放是语法规定。 (2&a…...
创新设计,精准仿真|SOLIDWORKS Simulation 2025新功能
SOLIDWORKS Simulation 2025 带来了多项新功能,不仅提高了工作效率,还增强了仿真的精确度。以下是五大新功能的详细介绍,帮助您更好地利用这些新特性提升设计仿真能力。 1. 从分析中排除实体 在复杂的装配体仿真中,有时需要排除某…...
vue3封装Element Plus table表格组件
支持绝大部分Element Plus原有设置属性,支持分页,支持动态适配高度 效果展示 组件代码: <template><div class"table-wrap" ref"tableWrap"><el-tableclass"w100 h100":data"tableInfo.…...
Qt之QWidget相关
Qt概述 Qt 是一个跨平台的 C 开发框架。 跨平台支持:可以用于开发 Windows、macOS、Linux、Android、iOS 等多种操作系统下的应用程序。这意味着开发者使用 Qt 编写的代码,在经过适当的编译和配置后,能够在不同平台上运行,减少了…...
用web前端写出一个高校官网
所实现的效果如链接: http://127.0.0.1:5500/school.html <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>xigongshang</title> <style> * {margin: 0;padding: 0;} a{ text-decoration: none…...
【笔记】Android Gradle Plugin配置文件相关说明-libs.versions.toml
版本号 文件路径:Project\gradle\libs.versions.toml 直接搜索versions.agp是找不到的,这是变量引用的写法,查询 agp版本可以直接查版本号。 [versions] agp "8.5.0-alpha08" junit "4.13.2" junitVersion "1.…...
如何修复WordPress卡在维护模式
当你管理WordPress网站时,没有什么比看到它卡在维护模式更令人沮丧的了。特别是在你进行重要更新或期望大量流量的时候,这种情况会更加令人不安。 维护模式可能由许多因素引起,从简单的文件损坏到更复杂的插件冲突或存在的.maintenance文件。…...
glob三个函数的效果
glob 允许你给一个从dirname到basename pattern的整字符串路径,然后匹配一切符合要求的路径。 glob0 dirname和basename分开传,只返回basename。可见不支持pattern匹配。 glob1 dirname和basename pattern分开传,只返回basename。支持pa…...
FreeRTOS:事件标志组与任务通知
目录 一、事件标志组(Event Groups) 1、事件标志组的特点 2、事件标志组与队列、信号量的区别 3、关键API函数 4、示例代码 5、优缺点 6、总结 二、任务通知(Task Notifications) 1、任务通知的特点 2、关键API函数 3、…...
c++11的动态类型
c17引入了any 和 variant,可以将任意数据类型统一用any或variant类型表示,在开发中还是能够带来很多便利的。在c11版本中,可以用下面这个例子,仿照实现一个Any类型。 #include <iostream> #include <stdexcept> #inc…...
付费会员渗透难,腾讯音乐的触顶挑战
腾讯音乐付费用户增长背后,月活跃用户数下滑3%,超级会员渗透率仅1.8%。 转载|原创新熵 作者丨晓伊 编辑丨蕨影 腾讯音乐此次营收同比正增长的到来,殊为不易。要知道,此前已连续四个季度出现营收同比下滑的态势。 11月12日&#x…...
内网安全隧道搭建-ngrok-frp-nps-sapp
1.ngrok 建立内网主机与公网跳板机的连接: 内网主机为客户机: 下载客户端执行 2.frp (1)以下为内网穿透端口转发 frp服务端配置: bindPort 为frp运行端口 服务端运行 ./frps -c frps.ini frp客户端配置…...
Load-Balanced-Online-OJ(负载均衡式在线OJ)
负载均衡式在线OJ 1. 项目介绍2. 项目说明4. 项目代码5. 项目演示 1. 项目介绍 2. 项目说明 4. 项目代码 5. 项目演示...
Postman之变量操作
系列文章目录 1.Postman之安装及汉化基本使用介绍 2.Postman之变量操作 3.Postman之数据提取 4.Postman之pm.test断言操作 5.Postman之newman Postman之变量操作 1.pm.globals全局变量2.pm.environment环境变量3.pm.collectionVariables集合变量4.pm.variables5.提取数据-设置变…...
查找字符串中某个字符返回字符位置
当然有正则表达式就非常简单,没有的话也不用担心,我们自己写算法完成这个功能. 早期的vs版本不支持vs,当然也可以下载boost来实现,关键还是不想下载,那么就自己写吧. 1.要求,查找字符串中同一个字符,并找出字符的位置. 2.根据字符位置,计算出对应的x,y坐标. 算法第一步,查找字…...
《数学物理学报》
作者指南 一、目的与范围 《数学物理学报》以刊登数学与物理科学的边缘学科中具有创造性的代表学科水平的科研成果为主的综合性学术刊物。其目的旨在向专业读者(研究生水平以上)提供数理学科领域的重要的、独创的成果。 二、投稿 要求文章内容具有创新…...
39页PDF | 毕马威_数据资产运营白皮书(限免下载)
一、前言 《毕马威数据资产运营白皮书》探讨了数据作为新型生产要素在企业数智化转型中的重要性,提出了数据资产运营的“三要素”(组织与意识、流程与规范、平台与工具)和“四重奏”(数据资产盘点、评估、治理、共享)…...
K8s 一键部署 MongoDB 的 Replica-Set 和 MongoDB-Express
什么是 MongoDB 副本集? MongoDB 副本集(Replica-Set)是一个分布式数据库系统,它包含一个主节点和多个从节点。主节点负责处理所有写操作,从节点用于读取数据。当主节点发生故障时,从节点可以自动选举一个…...
嵌入式开发关键技术演进与实战经验分享
1. 嵌入式开发的行业现状与核心挑战2023年的嵌入式开发领域呈现出明显的多元化发展趋势。作为一名从业超过十年的嵌入式工程师,我观察到这个行业正在经历从传统单机设备向智能化、网络化方向的快速转型。根据AspenCore最新发布的行业调查报告,目前超过30…...
3步解锁加密音乐:ncmdumpGUI技术解析与实战指南
3步解锁加密音乐:ncmdumpGUI技术解析与实战指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI ncmdumpGUI是一款专为网易云音乐用户设计的NCM文件…...
python-langchain框架(1-8-2 缓存机制——验证缓存的效果)
当用户提出一个常见问题时,首次调用大模型需要经历网络传输、排队等待、模型推理等完整链路,响应时间通常在1至3秒。这个时长已超过人类对“流畅交互”的心理阈值(200毫秒),用户会明显感知到“卡顿”和“等待焦虑”。而…...
TX12 + ExpressLRS 915MHz RC链路优化与EdgeTX固件升级实战
1. 为什么选择TX12搭配ExpressLRS 915MHz系统 玩无人机的朋友都知道,遥控链路就像风筝线,距离和稳定性直接决定飞行体验。我之前用2.4GHz的RadioLink套装,飞到500米就开始心跳加速——信号时断时续,每次返航都像在赌运气。换成TX1…...
Pixel Aurora Engine效果展示:‘进化像素’设计哲学下的10组对比作品集
Pixel Aurora Engine效果展示:‘进化像素’设计哲学下的10组对比作品集 1. 像素极光引擎概览 Pixel Aurora Engine是一款基于AI扩散模型的高端像素艺术生成工具。它采用独特的复古像素游戏风格界面设计,将现代AI技术与经典8-bit美学完美融合。这款工具…...
TypeScript组件库终极指南:Arco Design类型定义与接口设计最佳实践
TypeScript组件库终极指南:Arco Design类型定义与接口设计最佳实践 【免费下载链接】arco-design A comprehensive React UI components library based on Arco Design 项目地址: https://gitcode.com/gh_mirrors/ar/arco-design Arco Design是一个基于TypeS…...
GHelper:华硕笔记本性能优化的轻量解决方案 - 告别Armoury Crate臃肿体验
GHelper:华硕笔记本性能优化的轻量解决方案 - 告别Armoury Crate臃肿体验 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Fl…...
TFLint Docker终极指南:在容器中轻松运行Terraform代码检查
TFLint Docker终极指南:在容器中轻松运行Terraform代码检查 【免费下载链接】tflint A Pluggable Terraform Linter 项目地址: https://gitcode.com/gh_mirrors/tf/tflint TFLint是一个可插拔的Terraform代码检查工具,帮助开发者发现Terraform配置…...
oklog架构深度解析:如何实现无协调的分布式日志存储
oklog架构深度解析:如何实现无协调的分布式日志存储 【免费下载链接】oklog A distributed and cordination-free log management system 项目地址: https://gitcode.com/gh_mirrors/ok/oklog 在当今云原生和微服务架构盛行的时代,分布式日志管理…...
python实现skip-gram(跳词)示例
文章目录示例什么是跳词? 一句话,就是用中心词,去预测它周围的词。它是 Word2Vec 里最常用的一种训练方式。 示例 1、安装依赖 pip install matplotlib # 其他torch等依赖早就安装了2、创建python文件skip_gram_demo.py,代码:…...
