MySql 多表查询
多表查询:指从多张表中查询数据。
笛卡儿积:笛卡儿积是指在数学中,两个集合(A集合 和 B集合)的所有组合情况。
- 连接查询
- 内连接:相当于查询A、B交集部分数据
- 外连接
- 左外连接:查询左表所有数据(包括两张表交集部分数据
- 右外连接:查询右表所有数据(包括两张表交集部分数据
- 子查询
内连接
隐式内连接:
select 字段列表 from 表1,表2... where 条件...;
显示内连接:
select 字段列表 from 表1 [inner] join 表2 连接条件;
-
查询员工姓名及所属部门名称(隐式内连接
SELECT tb_emp.name, tb_dept.name FROM tb_dept,tb_emp where tb_emp.dept_id = tb_dept.id;给表起别名
SELECT e.name, d.name FROM tb_dept d,tb_emp e where e.dept_id = d.id; -
查询员工姓名及所属部门名称(显式内连接
SELECT tb_emp.name, tb_dept.name FROM tb_dept inner join tb_emp ON tb_dept.id = tb_emp.dept_id;
外连接
-
左外连接:
select 字段列表 from 表1 left [outer] join 表2 on 连接条件; -
右外连接:
select 字段列表 from 表1 right [outer] join 表2 on 连接条件; -
查询员工表 所有员工姓名和对应的部门名称(左外连接
SELECT e.name, d.name FROM tb_emp e left join tb_dept d on e.dept_id = d.id; -
查询部门表 所有部门名称和对应的员工名称(右外连接)
SELECT e.name, d.name FROM tb_emp e right join tb_dept d on e.dept_id = d.id;
子查询
SQL语句中嵌套select语句,称为嵌套查询,又称子查询。
语法:
select * from t1 where column1 = (select column1 from t2...);
子查询外部的语句可以是insert,delete,select的任何一个。
分类:
- 标量子查询:子查询返回的结果为单个值
- 列子查询:子查询返回的结果为一列
- 行子查询:子查询返回的结果为一行
- 表子查询:子查询返回的结果为多行多列
标量子查询
子查询返回的结果是单个值(数字、字符串、日期等),最简单的形式
常用的操作符:= <> > >= < <=。
-
查询教研部所有员工信息
-
查询教研部的部门ID - tb-dept
select id from tb_dept where name = '教研部'; -
再查询该部门ID下的员工信息 - tb_emp
select * from tb_emp where dept_id = 2;
合并两个sql语句:
select * from tb_emp where dept_id = (select id from tb_dept where name = '教研部'); -
-
查询在“方东白”入职之后的员工信息
-
查询 “方东白”的入职时间
select entrydate from tb_emp where name = '方东白'; -
查询在”方东白“入职之后的员工信息
select * from tb_emp where entrydate > '2012-11-01';
合并两个sql语句:
select * from tb_emp where entrydate > (select entrydate from tb_emp where name = '方东白'); -
列子查询
子查询返回的结果是一列(可以是多行)。常用的操作符:in,not in等。
-
查询”教研部“和”咨询部“的所有员工信息
- 查询”教研部“ 和 ”咨询部“ 的部门ID - tb_dept
select id from tb_dept where name = '教研部' or name = '咨询部';-
根据部门ID,查询该部门下的员工信息 - tb_emp
select * from tb_emp where dept_id in(3,2);
合并两个sql语句:
select * from tb_emp where dept_id in(select id from tb_dept where name = '教研部' or name = '咨询部');
行子查询
子查询返回的结果是一行(可以是多列)。常用的操作符:= , <>, in, not in。
-
查询与”韦一笑“的入职日期及职位都相当的员工信息
-
查询”韦一笑“的入职日期及职位
select entrydate, job from tb_emp where name = '韦一笑'; -
查询与其入职日期及职位都相同的员工信息
select * from tb_emp where entrydate = '2007-01-01' and job = 2;
合并两个sql语句:
select * from tb_emp where (entrydate, job) = (select entrydate, job from tb_emp where name = '韦一笑'); -
表子查询
子查询返回的结果是多行多列,常作为临时表。常见操作符:in。
-
查询入职日期是”2006-01-01“之后入职的员工信息及其部门名称
-
查询入职日期是”2006-01-01“之后的员工信息
select * from tb_emp where entrydate > '2006-01-01'; -
查询这部分员工信息及其部门名称
select e.*, d.name from (select * from tb_emp where entrydate > '2006-01-01') e, tb_dept d where e.dept_id = d.id;
-
相关文章:
MySql 多表查询
多表查询:指从多张表中查询数据。 笛卡儿积:笛卡儿积是指在数学中,两个集合(A集合 和 B集合)的所有组合情况。 连接查询 内连接:相当于查询A、B交集部分数据外连接 左外连接:查询左表所有数据…...
数学建模算法与应用 第11章 偏最小二乘回归及其方法
目录 11.1 偏最小二乘回归概述 11.2 Matlab 偏最小二乘回归命令 Matlab代码示例:偏最小二乘回归 11.3 案例分析:化学反应中的偏最小二乘回归 Matlab代码示例:光谱数据的PLS回归 习题 11 总结 偏最小二乘回归(Partial Least …...
【MATLAB代码】TDOA定位,4个基站、3个时间差、三维定位(可直接复制粘贴到MATLAB上运行)
文章目录 程序结构源代码运行结果代码结构输入输出解析该MATLAB代码实现了基于时间差定位(TDOA, Time Difference of Arrival)的方法,使用最小二乘法在三维空间中估计一个未知点的位置。该算法利用一个主锚点和三个副锚点的已知位置,通过计算信号传播时间差来推算出目标位置…...
uniapp引入ThorUI的方法
1、下载文件 2、复制相应的文件除了pages 3、往项目中复制即可 4、引入即可实现 5、添加easycome自动引入...
面试官:手写一个New
在JavaScript中,new操作符主要用于创建一个对象示例。通过new操作符,可以创建一个新的对象,并将这个对象的原型链只想一个构造函数的原型对象,然后执行构造函数中的代码初始化这个新对象。 常见的new的使用为 new Array() new Set…...
merlion的dashboard打开方法
安装好merlion包后,在anaconda prompt中进行如下图操作: 先进入创建好的虚拟环境:conda activate merlion再执行命令:python -m merlion.dashboard在浏览器中手动打开图中的地址: http://127.0.0.1:8050 打开后的界面…...
自监督学习:引领机器学习的新革命
引言 自监督学习(Self-Supervised Learning)近年来在机器学习领域取得了显著进展,成为人工智能研究的热门话题。不同于传统的监督学习和无监督学习,自监督学习通过利用未标注数据生成标签,从而大幅降低对人工标注数据…...
Web安全常用工具 (持续更新)
前言 本文虽然是讲web相关工具,但在在安全领域,没有人是先精通工具,再上手做事的。鉴于web领域繁杂戎多的知识点(工具是学不完的,哭),如果你在本文的学习过程中遇到没有学过的知识点࿰…...
不踩坑,青龙面板小问题解决方案~
好久没写了,随手记录一下。 1. 新建目录 很多人跟我一样入坑的手机免root青龙面板,一般用的都是2.10.13版本。这个版本比较早,似乎没有新建目录的功能(也可能是我不会用哈哈),以下是对比图: 大家…...
2025秋招倒计时---招联金融
【投递方式】 直接扫下方二维码,或点击内推官网https://wecruit.hotjob.cn/SU61025e262f9d247b98e0a2c2/mc/position/campus,使用内推码 igcefb 投递) 【招聘岗位】 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策…...
基于yolov8、yolov5的果蔬检测系统(含UI界面、数据集、训练好的模型、Python代码)
项目介绍 项目中所用到的算法模型和数据集等信息如下: 算法模型: yolov8、yolov8 SE注意力机制 或 yolov5、yolov5 SE注意力机制 , 直接提供最少两个训练好的模型。模型十分重要,因为有些同学的电脑没有 GPU࿰…...
出海快报 | “三消+短剧”手游横空出世,黄油相机“出圈”日本市场,从Q1看日本手游市场趋势和机会
编者按:TopOn出海快报栏目为互联网出海从业者梳理出海热点,供大家了解行业最新发展态势。 1.“三消短剧”横空出世,融合创新手游表现亮眼 随着竞争的加剧,新产品想要突出重围,只能在游戏中加入额外的元素。第一次打开…...
Linux高效查日志命令介绍
说明:之前介绍Linux补充命令时,有介绍使用tail、grep命令查日志; Linux命令补充 今天发现仅凭这两条命令不够,本文扩展介绍一下。 命令一:查看日志开头 head -n 行数 日志路径如下,可以查看程序启动是否…...
非线性关卡设计
【GDC】如何设计完全非线性的单人关卡_DOOM (bilibili.com) 本文章算是此视频的简单笔记,更详细还请看视频 设计完全非线性关卡强调自由移动和沙盒式玩法,鼓励玩家进行不可预测的移动和空间探索。讲解者分享了设计此类关卡的具体步骤,包括明…...
Qt-链接数据库可视化操作
1. 概述 Qt 能够支持对常见数据库的操作,例如: MySQL、Oracle、SqlServer 等等。 Qt SQL模块中的API分为三层:驱动层、SQL接口层、用户接口层。 驱动层为数据库和SQL接口层之间提供了底层的桥梁。 SQL接口层提供了对数据库的访问࿰…...
萤火php端: 查询数据的时候报错: “message“: “Undefined index: pay_status“,
代码:getGoodsFromHistory <?php // ---------------------------------------------------------------------- // | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ] // -----------------------------------------------------…...
程序人生-2024我的个人总结
可能现在写个人总结比较早,但是眼看着还有三个月,今年就过去了,所以决定提前写写,今年对于我来说是不平凡的一年,先是加薪,之后求婚,以为快要走上人生巅峰的时候,被裁员,…...
SQL自学:什么是联结,如何编写使用联结的SELECT语句
在 SQL(Structured Query Language,结构化查询语言)的世界里,联结(JOIN)是一个强大且至关重要的概念。它允许我们从多个表中检索数据,从而实现更复杂的查询和数据分析。本文将深入探讨联结的概念…...
【C++】函数重载+引用
大家好,我是苏貝,本篇博客带大家了解C的函数重载和引用,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 一. 预处理、编译、汇编、链接二. 函数重载1 概念2 C支持函数重载的原理—名字修饰…...
华为S5735交换机console密码重置和恢复出厂设置
比较简单,简单说就是进入bootload清除密码,然后进入default mode下重置密码。 1.开机按CtrlB,进入启动加载菜单(BootLoad menu) 拨电源重启交换机,大约开机10多秒的时候会出现提示按CtrlB可以进入BootLoa…...
实测Taotoken聚合端点在高峰时段的响应延迟与稳定性
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 实测Taotoken聚合端点在高峰时段的响应延迟与稳定性 在构建依赖大模型能力的应用时,服务的响应延迟与稳定性是开发者关…...
基于WiFi与OPC协议的可穿戴LED灯光同步系统设计与实现
1. 项目概述:打造你的无线光影秀发想象一下,你亲手制作的LED帽子、发光外套,甚至是手中的光绘道具,都能随着你电脑屏幕上的音乐可视化效果或视频内容同步闪烁、流动。无需复杂的编程,只需一个简单的播放指令࿰…...
AI智能体的测试
测试AI智能体(AI Agent)与测试传统的确定性软件有本质的区别。传统软件测试关注的是“输入 A,是否必然输出 B”;而 AI Agent 具备自主规划、工具调用、长期记忆和非确定性生成的能力,这导致它的测试维度更广、复杂度更…...
开源写作助手:本地化部署的智能文本分析与AI辅助创作工具
1. 项目概述:一个为写作者量身定制的智能工具箱如果你经常需要写点东西,无论是技术文档、博客文章、工作报告,还是小说草稿,大概率都经历过这样的时刻:对着空白文档发呆,感觉大脑一片空白;或者写…...
2026山东大学软件学院项目实训(六)
一、基本信息组号:69组员:李重昊负责模块:AI 工作流 —— 图片收集节点二、任务概述在 LangGraph4j 工作流中完成图片收集节点开发,根据用户自然语言需求自动规划并收集网站所需图片,为后续提示词增强与代码生成提供素…...
科研实战:三种高效获取ERA5再分析数据的路径解析
1. ERA5再分析数据基础认知 第一次接触ERA5数据时,我和大多数科研新手一样被各种专业术语搞得晕头转向。简单来说,ERA5就像给地球做CT扫描生成的全球气象体检报告,它能提供从1950年到现在,每小时更新的气温、降水、风速等上百种气…...
为什么92%的戏剧研究生还没用上NotebookLM真正能力?——解锁其多源文本互文性推理的3个密钥
更多请点击: https://intelliparadigm.com 第一章:NotebookLM戏剧研究辅助的范式革命 传统戏剧研究长期依赖人工文本比对、手写批注与线性阅读,面对莎士比亚全集、元杂剧数百种版本、当代实验戏剧脚本等海量非结构化文本,知识提取…...
小学期学习报告-1
通过B站视频学习之后,我掌握冰设计出了555方波发生电路和低通滤波器,通过示波器可以看到,已经除了稳定的方波和正弦波 在这个过程中,根据公式T0.7*( R12R2)*C1,多次调整并得出稳定波形ÿ…...
林调报告生成慢?文献综述耗时长?NotebookLM林业科研加速器已上线,72小时实测效率提升3.8倍
更多请点击: https://kaifayun.com 第一章:NotebookLM林业科学研究 NotebookLM 是 Google 推出的基于 AI 的研究协作者工具,专为深度阅读与知识整合设计。在林业科学研究中,它可高效处理林学文献、野外调查报告、遥感数据说明书、…...
Markdown到思维导图的架构化转换:基于AST解析与D3渲染的技术实现
Markdown到思维导图的架构化转换:基于AST解析与D3渲染的技术实现 【免费下载链接】markmap Build mindmaps with plain text 项目地址: https://gitcode.com/gh_mirrors/ma/markmap Markdown思维导图转换技术通过结构化文本解析与可视化渲染引擎的协同工作&a…...
