高级技巧-使用Mysql 实现根据条件过滤整个分组数据

博客-mysql exists实现过滤所属条件对应分组的全部数据

在数据查询中,有时需要根据某一条件来过滤整个分组的数据,尤其是当某条记录满足特定条件时,需要将该组内的所有记录排除。本文将介绍如何使用 MySQL 的 EXISTS 关键字来实现这种分组过滤的功能。通过具体示例,我们展示了如何在复杂的数据库查询中高效地排除符合条件的分组数据

假设有一个旅游记录表,我想要查询 未去过长沙市旅游的人,

在这里插入图片描述

如果使用

where travel_city != ‘长沙’ 是实现不了的,因为一个人可能会去到很多地方,上述条件只是过滤了 去长沙的记录,但是我是想查询 没去过长沙的

在这里插入图片描述

这时候 可以使用exists条件实现

SELECT *
FROM travel_records t1
WHERE NOT EXISTS (SELECT 1FROM travel_records t2WHERE t1.empId = t2.empId -- 同一员工(empId相同)AND t2.travel_city = '长沙市'  -- 条件:到过长沙市
);

实践


表结构和插入的数据

drop  table travel_records ;
CREATE TABLE travel_records (id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'Primary Key',      -- 唯一标识empId INT NOT NULL COMMENT '员工ID',                    -- 员工ID,用于分组name VARCHAR(100) NOT NULL COMMENT '员工姓名',                   -- 员工姓名age INT NOT NULL COMMENT '员工年龄',                              -- 员工年龄travel_province VARCHAR(100) NOT NULL COMMENT '旅游的省',    -- 旅游的省travel_city VARCHAR(100) NOT NULL COMMENT '旅游的市',            -- 旅游的市travel_district VARCHAR(100) NOT NULL COMMENT '旅游的区或县'     -- 旅游的区或县
) comment '人员旅游记录表';

插入数据

INSERT INTO travel_records (empId, name, age, travel_province, travel_city, travel_district) VALUES
(1001, '张三', 25, '湖南省', '长沙市', '岳麓区'), 
(1001, '张三', 25, '湖北省', '武汉市', '武昌区'),
(1002, '李四', 30, '北京市', '北京市', '朝阳区'),
(1002, '李四', 30, '天津市', '天津市', '滨海新区'),
(1003, '王五', 35, '广东省', '广州市', '天河区'),
(1003, '王五', 35, '湖南省', '长沙市', '开福区'),
(1004, '赵六', 28, '上海市', '上海市', '浦东新区');

执行sql

# 正确的sql
SELECT *
FROM travel_records t1
WHERE NOT EXISTS (SELECT 1FROM travel_records t2WHERE t1.empId = t2.empId -- 同一员工(empId相同)AND t2.travel_city = '长沙市'  -- 条件:到过长沙市
);# 错误的sql
select * from  travel_records where travel_city != '长沙市'

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

游戏引擎学习第67天

reviewing “apron”概念以更新区域 我们正在进行模拟区域的扩展工作,目标是通过增加一个更大的区域来支持更丰富的互动,尤其是那些可能超出摄像机视野的内容。现有的模拟区域包括摄像机能看到的区域和其周围的环境区域,但为了保证更高效的游…

计算机网络|数据流向剖析与分层模型详解

文章目录 一、网络中的数据流向二、计算机网络通信模型1.OSI 模型2.TCP/IP 模型3.TCP/IP五层模型3.1 分层架构描述3.2各层地址结构3.3UDP数据包报头结构 三、总结 一、网络中的数据流向 在计算机网络中,数据的流向是指数据从发送端到接收端的传输路径。数据流向涉及…

如何在 Spring Boot 微服务中设置和管理多个数据库

在现代微服务架构中,通常需要与多个数据库交互的服务。这可能是由于各种原因,例如遗留系统集成、不同类型的数据存储需求,或者仅仅是为了优化性能。Spring Boot 具有灵活的配置和强大的数据访问库,可以轻松配置多个数据库。在本综…

【Raven1靶场渗透】

文章目录 一、基础信息 二、信息收集 三、暴力破解 四、提权 一、基础信息 Kali IP :192.168.20.146 靶机IP :192.168.20.153 二、信息收集 nmap -sS -sV -p- -A 192.168.20.153 开放了22,80,111,58305端口 访…

视频监控平台:Liveweb视频汇聚融合平台智慧安防视频监控应用方案

Liveweb是一款功能强大、灵活部署的安防视频监控平台,支持多种主流标准协议,包括GB28181、RTSP/Onvif、RTMP等,同时兼容海康Ehome、海大宇等厂家的私有协议和SDK接入。该平台不仅提供传统安防监控功能,还支持接入AI智能分析&#…

【杂谈】-AI搜索引擎如何改变传统SEO及其在内容营销中的作用

AI搜索引擎如何改变传统SEO及其在内容营销中的作用 文章目录 AI搜索引擎如何改变传统SEO及其在内容营销中的作用1、什么是AI搜索引擎2、AI搜索引擎对SEO策略的影响3、AI搜索引擎在内容营销转型中的作用4、AI搜索引擎在营销领域的挑战、道德问题和未来5、总结 在当今的数字营销世…

Pytorch | 利用SMI-FGRM针对CIFAR10上的ResNet分类器进行对抗攻击

Pytorch | 利用I-FGSSM针对CIFAR10上的ResNet分类器进行对抗攻击 CIFAR数据集SMI-FGRM介绍SMI-FGRM算法流程 SMI-FGRM代码实现SMI-FGRM算法实现攻击效果 代码汇总smifgrm.pytrain.pyadvtest.py 之前已经针对CIFAR10训练了多种分类器: Pytorch | 从零构建AlexNet对CI…

基于PREEvision的UML设计

众所周知,PREEvision是一款强大的电子电气架构协同开发及管理软件,可以很好地帮助架构工程师完成架构开发工作,其功能包括需求管理、定义功能逻辑、系统软件开发、网络设计、线束设计及整体工程的产品线管理和变形管理等。随着工程师们越来越…

闲谭Scala(2)--安装与环境配置

1. 概述 Java开发环境安装,需要两步,第一安装JDK,第二配置环境变量。 Scala的话,也是两步,第一安装Scale环境,第二配置环境变量。 需要注意的是,配置环境变量,主要是想让windows操…

智慧地下采矿:可视化引领未来矿业管理

图扑智慧地下采矿可视化平台通过整合多源数据,提供实时 3D 矿井地图及分析,提升了矿产开采的安全性与效率,为矿业管理提供数据驱动的智能决策支持,推动行业数字化转型。

XXL-TOOL v1.3.2 发布 | Java工具类库

Release Notes 1、【新增】新增工具类模块: Encrypt模块 | 一系列处理编解码、加解密的工具。Net模块 | 一系列处理Web、网络通讯相关的工具。 2、【完善】工具类单测完善;3、【升级】升级依赖版本,如freemarker、junit…等。 部分工具代码…

王鹤棣新剧《大奉打更人》开播 数据亮眼刷新招商纪录

临近年末,各类国产剧集仍频上新,档期竞争格外激烈。而由王鹤棣领衔主演的古装悬疑轻喜剧《大奉打更人》已于12月28日在CCTV-8和腾讯视频同步播出,开播即横扫各大榜单。该剧从定档官宣到开播,热度一路攀升,开播后更是掀…

Java中StopWatch的使用详解

stopWatch 是org.springframework.util 包下的一个工具类,使用它可直观的输出代码执行耗时,以及执行时间百分比。 在未使用这个工具类之前,如果我们需要统计某段代码的耗时,我们会这样写: public static void main(String[] args…

数据中台从centos升级为国产操作系统后,资源增加字段时,提交报500错误

文章目录 背景一、步骤1.分析阶段2.查看nginx3.修改用户(也可以修改所有者权限) 背景 故障报错: nginx报错信息: 2024/12/19 15:25:31 [crit, 500299#0: *249 onen0 " /var/lib/nginx/tmp/cient body/0000000001" f…

org.apache.zookeeper.server.quorum.QuorumPeerMain

QuorumPeerMain源代码 package org.apache.zookeeper.server.quorum;import java.io.IOException; import javax.management.JMException; import javax.security.sasl.SaslException; import org.apache.yetus.audience.InterfaceAudience; import org.apache.zookeeper.audi…

在K8S中,如果Pod处于不健康状态如何排查?

在kubernetes中,Pod处于不健康状态可能由多种原因导致。为了排查这个问题,你需要采用一系列步骤来确定问题的根源。下面是一个详细的排查过程: 1. 检查Pod的状态: 使用kubectl get pods命令来查看Pod的当前状态。不健康的Pod可能…

广东粤万润与时序数据库TDengine携手打造智慧酒店新未来:数据驱动智能化转型

在智能化转型浪潮席卷全球的当下,智慧酒店行业已然成为推进智能生活应用的先锋领域。从智能照明到环境监测,从安防系统到沉浸式影音娱乐,智慧酒店通过技术赋能为用户提供了更加舒适、高效且个性化的服务体验。然而,随着设备的增多…

mysql_real_connect的概念和使用案例

mysql_real_connect 是 MySQL C API 中的一个函数,用于建立一个到 MySQL 数据库服务器的连接。这个函数尝试建立一个连接,并根据提供的参数进行连接设置。 概念 以下是 mysql_real_connect 函数的基本概念: 函数原型:MYSQL *my…

CSS系列(44)-- Nesting详解

前端技术探索系列:CSS Nesting详解 📦 致读者:探索样式嵌套的艺术 👋 前端开发者们, 今天我们将深入探讨 CSS Nesting,这个强大的样式组织特性。 基础语法 🚀 基础嵌套 /* 简单嵌套 */ .c…

ARM64 CSEL条件 B条件一览

其实整体概括下来,就是两个寄存器比大小,按照不同的格式(有符号,无符号)比 条件选择 (Conditional Selection, CSEL) 示例 CSEL X3, X1, X2, EQ在这个例子中,如果条件码 EQ 为真(即条件寄存器的…