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

MySQL——基础——子查询

一、子查询


SQL语句中嵌套SELECT语句,称为嵌套查询,又称子查询

SELECT * from t1 WHERE column1 = (SELECT column1 FROM t2);

子查询外部的语句可以是INSERT/UPDATE/DELETE/SELECT中任意一个
根据子查询的结果不同,可以分为:
标量子查询(子查询的结果是一个值)
列子查询(子查询结果为一列)
行子查询(子查询结果为一行)
表子查询(子查询结果为多行多列)
根据子查询的位置,可以分为:WHERE之后、FROM之后、SELECT之后

二、标量子查询
子查询返回的结果是单个值(数字、字符串、日期等),最简单的形式,这种子查询称为标量子查询
常用的操作符:=,<>,>,>=,<,<=
1.查询“销售部”的所有员工的信息
a.查询“销售部”部门ID

select id
from department
where name = '销售部';

b.根据销售部部门ID,查询员工信息 

select *
from participators
where dept_id = 4;

2.查询在”东方白“入职之后的员工信息 

select *
from participators
where entrydate > (select entrydate from participators where name = '东方白');

 三、列子查询(查多个人的同一信息)

1.查询“销售部”和“市场部”的所有员工信息

a.先查询销售和市场的部门id

select id
from department
where name = '销售部'or name = '市场部';

b.再查询dept_id等于a的员工信息

select *
from participators
where dept_id in (2, 4);

合并 

select *
from participators
where dept_id in (select id from department where name = '销售部' or name = '市场部');

2.查询比财务部所有人工资都高的员工信息(all:要比子查询中的所有值都高) 

a.先查询财务部所有员工的工资

select salary
from participators
where dept_id = (select id from department where department.name = '财务部');

b.再查询比财务部员工工资高的员工信息

select *
from participators
where salary > all
(select salary from participators where dept_id = (select id from department where department.name = '财务部'));

3.查询比研发部其中任意一人工资高的员工信息(any:比子查询之中有一个值高就行) 

a.先查询研发部的所有人工资

select salary
from participators
where dept_id = (select id from department where department.name = '研发部');

b.再查询比其中之一高的

select *
from participators
where salary > any(select salary from participators where dept_id = (select id from department where department.name = '研发部'));

四、行子查询(查一个人的多个信息)
子查询结果是一行(也可以是多列),这种查询称为行子查询
常见的操作符:=,<>,IN,NOT IN
1.查询与‘张无忌’的薪资及直属领导相同的员工信息
a.查询张无忌的薪资及直属领导的id

select salary, managerid
from participators
where name = '张无忌';
select *
from participators
where (salary, managerid) = (12500, 1);

b.查询信息与张无忌相同的员工的信息

select *
from participators
where (salary, managerid) = (select salary, managerid from participators where name = '张无忌');

五、表子查询
子查询返回的结果是多行多列,这种查询称为表子查询
常用的操作符:IN
表子查询
1.查询与"鹿杖客",“宋远乔”的职位和薪资相同的员工信息
a.查询鹿杖客和宋远乔的职位和薪资

select job, salary
from participators
where name = '鹿杖客'or name = '宋远乔';

b.查询和这两人职位和工资相同的人

select *
from participators
where (job, salary) in (select job, salary from participators where name in ('鹿杖客', '宋远乔'));

2.查询入职日期是“2006-01-01”之后的员工信息以及他们的部门信息
a.入职日期是“2006-01-01”之后的员工信息

select *
from participators
where entrydate > '2006.01.01';

b.查询这部分员工对应的部门信息(将a查处的表作为左表,而department表作为右表,使用左外连接【因为要将没有部门的陈友谅也给查出来】) 

select e.*, d.*
from (select * from participators where entrydate > '2006.01.01') eleft join department d on d.id = e.dept_id;

相关文章:

MySQL——基础——子查询

一、子查询 SQL语句中嵌套SELECT语句&#xff0c;称为嵌套查询&#xff0c;又称子查询 SELECT * from t1 WHERE column1 (SELECT column1 FROM t2); 子查询外部的语句可以是INSERT/UPDATE/DELETE/SELECT中任意一个 根据子查询的结果不同&#xff0c;可以分为&#xff1a; 标…...

业务系统架构实践总结

我从2015年起至今2022年&#xff0c;在业务平台&#xff08;结算、订购、资金&#xff09;、集团财务平台&#xff08;应收应付、账务核算、财资、财务分析、预算&#xff09;、本地生活财务平台&#xff08;发票、结算、预算、核算、稽核&#xff09;所经历的业务系统研发实践…...

Linux学习之DNS服务的原理

DNS服务一些理论 域名系统&#xff08;Domain Name System&#xff0c;DNS&#xff09;是互联网的核心应用服务&#xff0c;可以通过IP地址查询到域名&#xff0c;也可以通过域名查询到IP地址。 FQDN&#xff08;Full Qualified Domain Name&#xff09;是完全限定域名&#xf…...

《Linux内核源码分析》(3)调度器及CFS调度器

《Linux内核源码分析》(3)调度器及CFS调度器 文章目录 《Linux内核源码分析》(3)调度器及CFS调度器一、调度器1、调度器2、调度类sched_class结构体3、优先级4、内核调度策略 二、CFS调度器1、CFS调度器基本原理2、调度子系统各个组件模块3、CFS调度器就绪队列内核源码 一、调度…...

Docker:如何删除已存在的镜像

要删除已存在的 Docker 镜像&#xff0c;您可以使用 docker rmi 命令。 以下是完整的流程 步骤1&#xff1a;停止容器 如容器正在运行需要停止正在运行的 Docker 容器&#xff0c;您可以使用 docker stop 命令。 以下是停止容器的步骤&#xff1a; 首先&#xff0c;使用 do…...

Qt——Qt 开发中所涉及的所有控件(基本控件、容器控件、布局控件、高级控件、其他控件、多媒体控件、定制控件)

Qt 开发中所涉及的所有控件 一、基本控件 二、容器控件 三、布局控件 四、高级控件 五、其他控件 六、多媒体控件 七、定制控件 Qt开发中提供了许多控件&#xff08;Widgets&#xff09;供开发者使用&#xff0c;用于构建图形用户界面&#xff08;GUI&#xff09;应用程序。以…...

基于Ubuntu坏境下的Suricata坏境搭建

目录 Suricata环境安装 第一步、在 Ubuntu 端点安装 Suricata 1、加入Suricata源 2、更新安装包 3、下载SuricataSuricata 第二步、下载并提取新兴威胁 Suricata 规则集 1、在tmp文件夹下载 Suricata 规则集 如果发现未安装curl&#xff0c;使用apt安装即可&#xff1a;…...

vue3权限管理——(路由权限)动态路由设置

1.大概思路 设置基础路由login和home等页面&#xff1b;登录后从后端获取user,token,rights等数据&#xff0c;并将数据同时存储到vuex和sessionStorage中将后端获取的权限数据&#xff08;作为不同用户显示不同菜单及不同路由的依据&#xff09;和路由页面进行映射&#xff1…...

小程序开发之登录授权

小程序开发登录授权流程 看懂这张图登录授权就没问题了&#xff08;哈哈哈哈哈&#xff09; 说明&#xff1a; 调用 wx.login() 获取 临时登录凭证code &#xff0c;并回传到开发者服务器。 调用 auth.code2Session 接口&#xff0c;换取 用户唯一标识 OpenID 和 会话密钥 sess…...

批量根据excel数据绘制折线图

要批量根据Excel数据绘制折线图&#xff0c;可以使用数据处理和图表绘制软件&#xff0c;例如Microsoft Excel或Python中的Matplotlib库。以下是两种方法&#xff1a; 1. 使用Microsoft Excel&#xff1a; - 打开Excel并导入包含数据的工作表。 - 选择需要绘制折线图的数…...

无锁并发:探秘CAS机制的魔力

&#x1f60a; 作者&#xff1a; 一恍过去 &#x1f496; 主页&#xff1a; https://blog.csdn.net/zhuocailing3390 &#x1f38a; 社区&#xff1a; Java技术栈交流 &#x1f389; 主题&#xff1a; 无锁并发&#xff1a;探秘CAS机制的魔力 ⏱️ 创作时间&#xff1a; 2…...

iOS App签名与重签名:从开发者证书到重新安装运行

前文回顾&#xff1a; iOS脱壳技术&#xff08;二&#xff09;&#xff1a;深入探讨dumpdecrypted工具的高级使用方法 iOS逆向&#xff1a;越狱及相关概念的介绍 在本文中&#xff0c;我们将详细介绍iOS应用的签名过程&#xff0c;包括开发者证书的种类、证书与App ID、Provisi…...

vue项目,如何修改Element-Plus等UI组件库的样式,三种方式搞定!!!

前言 我们在学习和使用组件库构建页面的时候&#xff0c;时常会遇到这样的问题。 即&#xff0c;尽管组件库已经提供了较多的功能&#xff0c;来帮助我们构建自定义的效果&#xff0c;但有时仍不能使我们满意。 这个时候我们就不得不修改UI库的样式&#xff0c;来达到想要的状…...

httpd协议与apache

1.http 相关概念 HTTP是处于应用层的协议&#xff0c;使用TCP传输层协议进行可靠的传送。因此&#xff0c;需要特别提醒的是&#xff0c;万维网是基于因特网的一种广泛因特网应用系统&#xff0c;且万维网采用的是HTTP&#xff08;80/TCP&#xff09;和 HTTPS&#xff08;443/…...

Go 自学:文件的写入和读取

首先&#xff0c;使用os.Create()函数建立一个文件。 接着&#xff0c;使用io.WriteString()函数将内容写入文件。 最后&#xff0c;使用os.ReadFile()函数读取文件内容。 注意&#xff0c;这里读取的文件内容是data byte&#xff0c;我们需要使用string()函数将其转换为字符串…...

py 项目上线centos

1 服务器py版本 ps -ef|grep python|grep -v grep 2 2.x版本 安装 PyMySQL pip install PyMySQL0.9.3 3 后台运行py文件 nohup python down.py 1 > log.log 2>&1 & 这个命令将 down.py 程序放入后台运行&#xff0c; 同时将 stdout 输出到 log.log 文件中&…...

【git】would clobber existing tag 报错解决

问题 在用vscode的Git去pull代码的时候git弹窗报错&#xff0c;查看报错日志发现以下内容&#xff1a; > git pull --tags origin feature/xxx-2.0.0 From 173.110.11.22:VV-WORK-FE/vv-desktop* branch feature/xxx-2.0.0 -> FETCH_HEAD! [rejected] …...

Python OCR 使用easyocr库将图片中的文章提取出来

Python OCR 使用easyocr库将图片中的文章提取出来 初环境内容步骤一&#xff1a;安装easyocr库步骤二&#xff1a;导入必要的库步骤三&#xff1a;创建OCR阅读器对象步骤四&#xff1a;指定要识别的图片路径步骤五&#xff1a;执行OCR识别并提取文章内容步骤六&#xff1a;遍历…...

门禁系统忘记登入密码,现在更换电脑如何迁移旧电脑门禁系统的数据

环境&#xff1a; ivms-4200 v3.10.0.6_c 问题描述&#xff1a; 门禁系统忘记登入密码,现在更换电脑如何迁移旧电脑门禁系统的数据&#xff0c;旧电脑记住密码&#xff0c;忘了密码和密保了 解决方案&#xff1a; 1.前往海康官网下载4200客户端&#xff0c;在新电脑上安装 …...

初试Eureka注册中心

Eureka是spring cloud中的一个负责服务注册与发现的组件。遵循着CAP理论中的A(可用性)P(分区容错性)。一个Eureka中分为eureka server和eureka client。其中eureka server是作为服务的注册与发现中心。 搭建eureka服务 引入eureka依赖 引入SpringCloud为eureka提供的starter依…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

tomcat指定使用的jdk版本

说明 有时候需要对tomcat配置指定的jdk版本号&#xff0c;此时&#xff0c;我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...

如何配置一个sql server使得其它用户可以通过excel odbc获取数据

要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据&#xff0c;你需要完成以下配置步骤&#xff1a; ✅ 一、在 SQL Server 端配置&#xff08;服务器设置&#xff09; 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到&#xff1a;SQL Server 网络配…...