当前位置: 首页 > article >正文

MySQL——多表操作(四)(2)带 EXISTS 关键字的子查询

         EXISTS 关键字后面的参数可以是任意一个子查询,这个子查询的作用相当于测试,坏产生任何数据,只返回 TRUE 或 FALSE,当返回值为 TRUE 时,外层查询才会执行。

        例如,查询 employee 表中是否存在年龄大于 21岁的员工,如果存在,则查询 department 表中的所有记录,SQL 语句如下:

SELECT * FROM department WHERE EXISTS(select did from employee where age>21);

        上述语句执行成功后,结果如下:

mysql> SELECT * FROM department WHERE EXISTS(select did from employee where age>21);
+-----+-----------+
| did | dname     |
+-----+-----------+
|   1 | 网络部    |
|   2 | 媒体部    |
|   3 | 研发部    |
|   5 | 人事部    |
+-----+-----------+
4 rows in set (0.01 sec)

        由于 employee 表中有年龄大于 21 岁的员工,因此子查询的返回结果为 TRUE,所以外的查询语句会执行,即查询出所有的部门信息。需要注意的是,EXISTS 关键字比 IN 关键字的运行效率高,所以在实际开发中,特别是大数据量时,推荐使用 EXISTS 关键字。


http://www.kler.cn/a/283320.html

相关文章:

  • Vue3.js - 一文看懂Vuex
  • Android Studio更新成2024.1.2版本后旧项目Gradle配置问题
  • Android Studio 将项目打包成apk文件
  • JWT深度解析:Java Web中的安全传输与身份验证
  • DataWorks on EMR StarRocks,打造标准湖仓新范式
  • java模拟键盘实现selenium上下左右键 table中的左右滚动条实现滚动
  • ruoyi-app前端在缓存中添加nick_name和user_id属性值
  • windows安装macos虚拟机
  • apisix 本地开发环境部署
  • iOS/iPadOS18.1Beta3发布,新增通知摘要和AI消除功能
  • 如何在CenOS7上安装docker
  • PostgreSQL:后端开发者的瑞士军刀
  • 给自己复盘用的tjxt笔记day12第一部分
  • 【原型设计工具评测】Axure、Figma、Sketch三强争霸
  • 关于stm32的硬件CRC32与U盘分区中的CRC32计算方式不同的探索;stm32的硬件CRC32的使用细节;stm32的硬件CRC32的问题;
  • gin 通过 OpenTelemetry 实现链路追踪
  • 上新!Matlab实现基于QRGRU-Attention分位数回归门控循环单元注意力机制的时间序列区间预测模型
  • 数学基础 -- 线性代数之增广矩阵
  • Redis缓存穿透、缓存击穿与缓存雪崩的详细讲解和案例示范
  • 【WiFi协议的发展学习1】
  • SpringTask定时任务笔记
  • 仿BOSS招聘系统开发:构建高效、智能的在线招聘平台
  • Hadoop集群运维管理
  • OZON新品藏品,OZON收藏品推荐
  • LeetCode - 4 寻找两个正序数组的中位数
  • Pytorch 自动微分注意点讲解