07、MySQL-多表查询
目录
1、内连接
1.1 隐式内连接
1.2 显式内连接
2、外连接
2.1 左外连接
2.2 右外连接
3、自连接
4、联合查询
5、子查询
5.1 标量子查询
5.2 列子查询
5.3 行子查询
5.4 表子查询
1、内连接
概念:相当于查询A、B表交集的部分数据
1.1 隐式内连接
语法:SELECT 字段列表 FROM 表1,表2 WHERE 条件
-- 例:查询每一个员工的姓名 及关联的部门的名称(隐式内连接的实现) SELECT emp.name,dept.name from emp,dept WHERE emp.dept_id = dept.id1.2 显式内连接
语法:SELECT 字段列表 FORM 表1 [INNER] JOIN 表2 ON 连接条件
-- 例:查询每一个员工的姓名 及关联的部门的名称(显式内连接的实现) SELECT emp.name,dept.name from emp inner join dept on emp.dept_id = dept.id
2、外连接
2.1 左外连接
概念:查询左表所有数据 以及两张表交集的部分数据
语法:SELECT 字段列表 FROM 表1 LEFT [OUTER] JOIN 表2 ON 条件...
SELECT emp.name,dept.name '部门名称' FROM emp LEFT OUTER JOIN dept ON emp.dept_id = dept.id2.2 右外连接
概念:查询右表所有数据 以及两张表交集的部分数据
SELECT emp.name, dept.* FROM emp RIGHT OUTER JOIN dept ON emp.dept_id = dept.id
3、自连接
概念:当前表与自身的连接查询,自连接必须使用表别名 可以是内连接查询 也可以是外连接查询
语法:SELECT 字段列表 FROM 表A 别名A JOIN 表A 别名B ON 条件
-- 查询员工所属领导的信息 SELECT a.name '员工',b.name '领导' from emp a JOIN emp b on a.managerid = b.id
4、联合查询
概念: 就是把多次查询的结果合并起来 行程一个新的查询结果集
语法:SELECT 字段列表 FROM 表A... UNION[ALL] SELECT 字段列表 FROM 表B...
-- 将薪资低于5000的员工和年龄大于50的员工全部查找出来SELECT * FROM emp WHERE salary < 5000 UNION ALL SELECT * FROM emp WHERE age > 50-- 去掉ALL可以去重SELECT * FROM emp WHERE salary < 5000 UNION SELECT * FROM emp WHERE age > 50注意:
- 条件字段列表需要保持一致,字段类型也要保持一致
- UNION ALL 会将全部数据合并在一起 UNION后会对合并的数据去重
5、子查询
概念:SQL语句中嵌套SELECT语句 称为嵌套查询 又称子查询
语法:SELECT * FROM t1 WHERE column1=(SELECT column1 FROM t2)
5.1 标量子查询
概念:子查询结果为单个值
常用操作符:=、<>、>、>=、< 、<=
-- 查询研发部的所有员工信息 -- a. 查询"销售部" 部分ID SELECT id FROM dept WHERE name = '研发部' -- b. 根据销售部部门id 查询员工信息 SELECT * FROM emp WHERE dept_id = 1 -- c. 结合 SELECT * FROM emp WHERE dept_id = (SELECT id FROM dept WHERE name = '研发部')5.2 列子查询
概念:子查询结果为一列
常用操作符:IN、NOT IN、ANY、SOME、ALL
-- 查询“研发部” 和 “市场部” 的所有员工信息 -- a. 查询“销售部” 和 “市场部” 的部门id SELECT id FROM dept WHERE name = '研发部' OR name = '市场部' -- b. 根据部门ID,查询员工信息 SELECT * FROM emp WHERE dept_id IN(1,2) -- c. 结合 SELECT * FROM emp WHERE dept_id IN((SELECT id FROM dept WHERE name = '研发部' OR name = '市场部'))5.3 行子查询
概念:子查询结果为一行
常用操作符:=、<>、IN、NOT、IN
-- 查询与"晓飞"的薪资及直属领导相同的员工信息 -- a. 查询"晓飞"的薪资与直属领导 SELECT salary,managerid FROM emp WHERE name='晓飞'-- b. 查询与"晓飞"的薪资及直属领导相同的员工信息 SELECT * FROM emp WHERE (salary,managerid) = (SELECT salary,managerid FROM emp WHERE name='晓飞')5.4 表子查询
概念:子查询结果为多行多列
常用操作符:IN
-- 例:查询与“赵四”,“王炸” 的职位和薪资相同的员工信息 -- a. 查询赵四和王炸的职位和薪资 SELECT job,salary FROM emp WHERE name IN('赵四','王炸') -- b. 查询与“赵四”,“王炸” 的职位和薪资相同的员工信息 SELECT * FROM emp WHERE (job,salary) IN (SELECT job,salary FROM emp WHERE name IN('赵四','王炸'))-- 例:查询入职日期是“2004-01-01”之后的员工信息 及其部门信息 -- a. 查询入职日期是“2004-01-01”之后的员工信息 SELECT * FROM emp WHERE entrydate > '2004-01-01' -- b. 查询入职日期是“2004-01-01”之后的员工信息 及其部门信息 SELECT e.*,d.* FROM (SELECT * FROM emp WHERE entrydate > '2004-01-01') e LEFT JOIN dept d ON e.dept_id = d.id
相关文章:
07、MySQL-多表查询
目录 1、内连接 1.1 隐式内连接 1.2 显式内连接 2、外连接 2.1 左外连接 2.2 右外连接 3、自连接 4、联合查询 5、子查询 5.1 标量子查询 5.2 列子查询 5.3 行子查询 5.4 表子查询 1、内连接 概念:相当于查询A、B表交集的部分数据 1.1 隐式内连接 语法&…...
20240809 每日AI必读资讯
乒乓球AI机器人赢了人类!正反手灵活转换,擦网球高球都能接 - 谷歌发布首个达到人类竞技水平的机器人Agent,挑战乒乓球赛场。 - 机器人通过学习大量乒乓球状态数据,掌握了正手上旋球、反手瞄准等技能,展现出高速运动…...
《投资的原理》阅读笔记一
这是我准备集中学习投资类书籍后阅读的第8本书,但是是第一本读到一半决定从新开始、每章都写笔记的第一本书。 《投资的原理》的作者陈嘉禾先生是一位资深的价值投资者,书中也是大力弘扬着价值投资,跟我倾向于量化投资方向的想法并不合拍&am…...
金九银十,全网最详细的软件测试面试题总结
前面看到了一些面试题,总感觉会用得到,但是看一遍又记不住,所以我把面试题都整合在一起,都是来自各路大佬的分享,为了方便以后自己需要的时候刷一刷,不用再到处找题,今天把自己整理的这些面试题…...
ActiveMQ任意文件写入漏洞(CVE-2016-3088)复现
一.环境配置 腾讯云的ubuntu操作系统,已经安装有docker 和 vulhub 直接来到 启动环境docker-compose,要在root权限下运行。 docker-compose up -d 若出现等待时间过长的情况,请参考这篇文章http://t.csdnimg.cn/SYhbE 访问http://公网ip:8…...
网络协议四 物理层,数据链路层
从这一节开始学习 五层模型。学习方法是从最底层物理层开始学习 七层模型 五层模型 各个层用的协议,以及加上协议后的称谓 各个层的作用 应用层:可以认为是原始数据,该数据称为 报文,用户数据。 运输层:也叫传输层&am…...
Python知识点:如何使用Twisted进行异步网络编程
Twisted是一个事件驱动的网络编程框架,支持异步编程,适用于处理大量并发网络连接的应用。使用Twisted进行异步网络编程可以分为以下几个步骤: 安装Twisted: 首先需要安装Twisted库,可以使用pip进行安装: pi…...
循环神经网络
一、RNN神经网络 基本网络结构 RNN神经网络数学模型 RNN反向传播 二、LSTM神经网络 LSTM的遗忘门 对数据进行筛选,有的抛弃,有的保留 LSTM的输入门 LSTM输出门 LSTM缓解RNN梯度消失问题...
SQL进阶技巧:有序数据合并问题之如何按照指定的规则对数据进行合并?【详解collect_list函数有序性保证】
目录 0 问题描述【小红书面试题】 1 数据准备 2 问题分析 3 小结 0 问题描述【小红书】 有如下需求,需要将左边的表变换成右边的表,注意字段内容的顺序及对应内容的一致性。 第一个字段为name,第二个字段为subject,第三个字段为score,变换后要求subject按照语文、数学…...
windows和office微软官方免费激活教程
微软提供了windows系统和office的官方免费激活,其实不用去买什么激活码,官方提供了激活方式,完全免费。目前测试没发现什么问题,windows还支持永久激活,比一些乱七八糟的kms激活工具还省心。 github地址:Gi…...
【C++ 面试 - 基础题】每日 3 题(七)
✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏&…...
Java面试题精选:消息队列(一)
1、为什么使用消息队列 问题用意: 其实就是想问一下消息队列有哪些使用场景,你项目中什么业务场景用到了消息队列,有什么技术挑战。使用MQ后给你带来了什么好处 规范回答: 消息队列的常见使用场景很多,但比较核心的…...
宝塔面板启用 QUIC 与 Brotli 的完整教程
环境 系统:Ubuntu 22.04.4 LTS x86_64 宝塔版本:7.7.0 (可使用本博客提供的一键安装优化脚本) nginx版本:1.26.1 开放UDP端口 注意:在你的服务器商家那里也要开放443 udp端口 sudo ufw allow 443/udp然后重新加载 UFW 以使新…...
Linux 进程调度(二)之进程的上下文切换
目录 一、概述二、上下文切换的实现1、context_switch2、switch_mm3、switch_to 三、观测进程上下文切换 一、概述 进程的上下文切换是指在多任务操作系统中,当操作系统决定要切换当前运行的进程时,将当前进程的状态保存起来,并恢复下一个要…...
Oracle事物临时表
在Oracle数据库中,事务临时表是一种特殊的表类型,主要用于存储在事务处理过程中产生的临时数据。这些表的数据只对当前会话或事务可见,并且在事务结束时会自动清除。 事务临时表的特点 生命周期: 事务临时表中的数据在事务提交或…...
看图学sql之sql的执行顺序
学完前面的内容,我们已经掌握了基本的sql语法了,那我们学的 select, distinct, from, where,group by, having, order by, limit 他们具体的执行顺序是什么样的呢? 语法: SELECT distinct column1, column2 FROM table1 join …...
百日筑基第四十五天-从JAVA8走到JAVA9
JAVA9新特性 Java 9发布于 2017 年 9 月 21 日 。 快速创建不可变集合 增加了List.of()、Set.of()、Map.of() 和 Map.ofEntries()等工厂方法来创建不可变集合(有点参考 Guava 的味道): List.of("Java", "C"); Set.of…...
力扣第五十七题——插入区间
内容介绍 给你一个 无重叠的 ,按照区间起始端点排序的区间列表 intervals,其中 intervals[i] [starti, endi] 表示第 i 个区间的开始和结束,并且 intervals 按照 starti 升序排列。同样给定一个区间 newInterval [start, end] 表示另一个区…...
跟《经济学人》学英文:2024年08月03日这期 India’s economic policy will not make it rich
India’s economic policy will not make it rich A new World Bank report takes aim at emerging-market growth plans 原文: The developing world has fallen back in love with economic planning. As protectionism sweeps the West, poor countries are n…...
js 深拷贝、浅拷贝深度解析
赋值操作: let obj{a:1,b:[1,2,3],c:{m:2}}let newObjobjnewObj.a2newObj.b.push(4)newObj.c.m3console.log(obj,newObj); 将一个对象赋值给一个变量,其实就是将这个对象在栈内存中的引用地址复制给了这个变量,这两个对象指向堆内存中的同一个…...
告别药物研发效率困境:用REINVENT4实现智能分子设计范式突破
告别药物研发效率困境:用REINVENT4实现智能分子设计范式突破 【免费下载链接】REINVENT4 AI molecular design tool for de novo design, scaffold hopping, R-group replacement, linker design and molecule optimization. 项目地址: https://gitcode.com/gh_mi…...
水下珍品目标检测数据集海胆(sea urchin),海参(sea cucumber),扇贝(scallop)总计796张图像,图像大小是1920×1080数据集是YOLO格式和VOC格式可直接
水下珍品目标检测数据集 海胆(sea urchin),海参(sea cucumber),扇贝(scallop) 总计796张图像,图像大小是19201080 数据集是YOLO格式和VOC格式 可直接进行YOLO检测,目前yolov5检测map高达0.91 图像是原始图像,未做清晰化…...
2025届学术党必备的十大降AI率工具推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 对于知网AI检测系统来讲,要降低生成文本的可识别性,得从词汇层面施展…...
Windows窗口截图+OpenCV实战:用Python做个自动寻路导航系统
Windows窗口截图OpenCV实战:构建智能寻路导航系统 从游戏自动化到智能导航的技术实现 在数字时代,我们经常需要处理各种界面自动化任务,从游戏辅助到软件测试,再到智能导航系统。想象一下,如果能让你编写的程序像人类一…...
【技术干货】Gemma 4 全面实战:从高效推理到本地 Agent 工作流落地指南
【技术干货】Gemma 4 全面实战:从高效推理到本地 Agent 工作流落地指南摘要 本文围绕 Google 新一代开源模型家族 Gemma 4,系统解析其架构特点、推理效率、Agent 工作流与本地部署能力。结合实际开发场景,给出基于兼容 OpenAI 接口平台&#…...
Cubli_Mini自平衡机器人搭建指南:从原理到实践的完整路径
Cubli_Mini自平衡机器人搭建指南:从原理到实践的完整路径 【免费下载链接】Cubli_Mini 项目地址: https://gitcode.com/gh_mirrors/cu/Cubli_Mini 项目简介:探索自平衡技术的开源平台 Cubli_Mini是一款基于ESP32微控制器的自平衡立方体机器人&a…...
CBAM:轻量级注意力机制在CNN中的高效集成与应用
1. CBAM:让CNN学会"看重点"的黑科技 第一次听说CBAM这个名词时,我还以为是什么新型环保政策(笑)。后来才发现,这其实是计算机视觉领域的一个"小而美"的发明——Convolutional Block Attention Mod…...
暗黑破坏神2存档修改与角色调整工具:安全高效的d2s文件编辑解决方案
暗黑破坏神2存档修改与角色调整工具:安全高效的d2s文件编辑解决方案 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 在《暗黑破坏神2》的冒险旅程中,每个玩家都可能遇到存档损坏、属性点分配错误或稀有装…...
开源Axure RP中文语言包:提升原型设计效率的本地化方案
开源Axure RP中文语言包:提升原型设计效率的本地化方案 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn Axure RP作为…...
批量图片下载神器Image-Downloader:轻松获取高质量网络图片资源
批量图片下载神器Image-Downloader:轻松获取高质量网络图片资源 【免费下载链接】Image-Downloader Download images from Google, Bing, Baidu. 谷歌、百度、必应图片下载. 项目地址: https://gitcode.com/gh_mirrors/im/Image-Downloader 你是否曾为了收集…...
