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

MySql 多表查询

多表查询:指从多张表中查询数据。

笛卡儿积:笛卡儿积是指在数学中,两个集合(A集合 和 B集合)的所有组合情况。

  • 连接查询
    • 内连接:相当于查询A、B交集部分数据
    • 外连接
      • 左外连接:查询左表所有数据(包括两张表交集部分数据
      • 右外连接:查询右表所有数据(包括两张表交集部分数据
  • 子查询

内连接

隐式内连接:

select 字段列表 from1,2... where 条件...;

显示内连接:

select 字段列表 from1 [inner] join2 连接条件;
  • 查询员工姓名及所属部门名称(隐式内连接

    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 字段列表 from1 left [outer] join2 on 连接条件;
    
  • 右外连接:

    select 字段列表 from1 right [outer] join2 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...);

子查询外部的语句可以是insertdeleteselect的任何一个。

分类:

  • 标量子查询:子查询返回的结果为单个值
  • 列子查询:子查询返回的结果为一列
  • 行子查询:子查询返回的结果为一行
  • 表子查询:子查询返回的结果为多行多列

标量子查询

子查询返回的结果是单个值(数字、字符串、日期等),最简单的形式

常用的操作符:= <> > >= < <=

  • 查询教研部所有员工信息

    • 查询教研部的部门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 = '方东白');
    

列子查询

子查询返回的结果是一列(可以是多行)。常用的操作符:innot 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 多表查询

多表查询&#xff1a;指从多张表中查询数据。 笛卡儿积&#xff1a;笛卡儿积是指在数学中&#xff0c;两个集合&#xff08;A集合 和 B集合&#xff09;的所有组合情况。 连接查询 内连接&#xff1a;相当于查询A、B交集部分数据外连接 左外连接&#xff1a;查询左表所有数据…...

数学建模算法与应用 第11章 偏最小二乘回归及其方法

目录 11.1 偏最小二乘回归概述 11.2 Matlab 偏最小二乘回归命令 Matlab代码示例&#xff1a;偏最小二乘回归 11.3 案例分析&#xff1a;化学反应中的偏最小二乘回归 Matlab代码示例&#xff1a;光谱数据的PLS回归 习题 11 总结 偏最小二乘回归&#xff08;Partial Least …...

【MATLAB代码】TDOA定位,4个基站、3个时间差、三维定位(可直接复制粘贴到MATLAB上运行)

文章目录 程序结构源代码运行结果代码结构输入输出解析该MATLAB代码实现了基于时间差定位(TDOA, Time Difference of Arrival)的方法,使用最小二乘法在三维空间中估计一个未知点的位置。该算法利用一个主锚点和三个副锚点的已知位置,通过计算信号传播时间差来推算出目标位置…...

uniapp引入ThorUI的方法

1、下载文件 2、复制相应的文件除了pages 3、往项目中复制即可 4、引入即可实现 5、添加easycome自动引入...

面试官:手写一个New

在JavaScript中&#xff0c;new操作符主要用于创建一个对象示例。通过new操作符&#xff0c;可以创建一个新的对象&#xff0c;并将这个对象的原型链只想一个构造函数的原型对象&#xff0c;然后执行构造函数中的代码初始化这个新对象。 常见的new的使用为 new Array() new Set…...

merlion的dashboard打开方法

安装好merlion包后&#xff0c;在anaconda prompt中进行如下图操作&#xff1a; 先进入创建好的虚拟环境&#xff1a;conda activate merlion再执行命令&#xff1a;python -m merlion.dashboard在浏览器中手动打开图中的地址&#xff1a; http://127.0.0.1:8050 打开后的界面…...

自监督学习:引领机器学习的新革命

引言 自监督学习&#xff08;Self-Supervised Learning&#xff09;近年来在机器学习领域取得了显著进展&#xff0c;成为人工智能研究的热门话题。不同于传统的监督学习和无监督学习&#xff0c;自监督学习通过利用未标注数据生成标签&#xff0c;从而大幅降低对人工标注数据…...

Web安全常用工具 (持续更新)

前言 本文虽然是讲web相关工具&#xff0c;但在在安全领域&#xff0c;没有人是先精通工具&#xff0c;再上手做事的。鉴于web领域繁杂戎多的知识点&#xff08;工具是学不完的&#xff0c;哭&#xff09;&#xff0c;如果你在本文的学习过程中遇到没有学过的知识点&#xff0…...

不踩坑,青龙面板小问题解决方案~

好久没写了&#xff0c;随手记录一下。 1. 新建目录 很多人跟我一样入坑的手机免root青龙面板&#xff0c;一般用的都是2.10.13版本。这个版本比较早&#xff0c;似乎没有新建目录的功能&#xff08;也可能是我不会用哈哈&#xff09;&#xff0c;以下是对比图&#xff1a; 大家…...

2025秋招倒计时---招联金融

【投递方式】 直接扫下方二维码&#xff0c;或点击内推官网https://wecruit.hotjob.cn/SU61025e262f9d247b98e0a2c2/mc/position/campus&#xff0c;使用内推码 igcefb 投递&#xff09; 【招聘岗位】 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策…...

基于yolov8、yolov5的果蔬检测系统(含UI界面、数据集、训练好的模型、Python代码)

项目介绍 项目中所用到的算法模型和数据集等信息如下&#xff1a; 算法模型&#xff1a;     yolov8、yolov8 SE注意力机制 或 yolov5、yolov5 SE注意力机制 &#xff0c; 直接提供最少两个训练好的模型。模型十分重要&#xff0c;因为有些同学的电脑没有 GPU&#xff0…...

出海快报 | “三消+短剧”手游横空出世,黄油相机“出圈”日本市场,从Q1看日本手游市场趋势和机会

编者按&#xff1a;TopOn出海快报栏目为互联网出海从业者梳理出海热点&#xff0c;供大家了解行业最新发展态势。 1.“三消短剧”横空出世&#xff0c;融合创新手游表现亮眼 随着竞争的加剧&#xff0c;新产品想要突出重围&#xff0c;只能在游戏中加入额外的元素。第一次打开…...

Linux高效查日志命令介绍

说明&#xff1a;之前介绍Linux补充命令时&#xff0c;有介绍使用tail、grep命令查日志&#xff1b; Linux命令补充 今天发现仅凭这两条命令不够&#xff0c;本文扩展介绍一下。 命令一&#xff1a;查看日志开头 head -n 行数 日志路径如下&#xff0c;可以查看程序启动是否…...

非线性关卡设计

【GDC】如何设计完全非线性的单人关卡_DOOM (bilibili.com) 本文章算是此视频的简单笔记&#xff0c;更详细还请看视频 设计完全非线性关卡强调自由移动和沙盒式玩法&#xff0c;鼓励玩家进行不可预测的移动和空间探索。讲解者分享了设计此类关卡的具体步骤&#xff0c;包括明…...

Qt-链接数据库可视化操作

1. 概述 Qt 能够支持对常见数据库的操作&#xff0c;例如&#xff1a; MySQL、Oracle、SqlServer 等等。 Qt SQL模块中的API分为三层&#xff1a;驱动层、SQL接口层、用户接口层。 驱动层为数据库和SQL接口层之间提供了底层的桥梁。 SQL接口层提供了对数据库的访问&#xff0…...

萤火php端: 查询数据的时候报错: “message“: “Undefined index: pay_status“,

代码&#xff1a;getGoodsFromHistory <?php // ---------------------------------------------------------------------- // | 萤火商城系统 [ 致力于通过产品和服务&#xff0c;帮助商家高效化开拓市场 ] // -----------------------------------------------------…...

程序人生-2024我的个人总结

可能现在写个人总结比较早&#xff0c;但是眼看着还有三个月&#xff0c;今年就过去了&#xff0c;所以决定提前写写&#xff0c;今年对于我来说是不平凡的一年&#xff0c;先是加薪&#xff0c;之后求婚&#xff0c;以为快要走上人生巅峰的时候&#xff0c;被裁员&#xff0c;…...

SQL自学:什么是联结,如何编写使用联结的SELECT语句

在 SQL&#xff08;Structured Query Language&#xff0c;结构化查询语言&#xff09;的世界里&#xff0c;联结&#xff08;JOIN&#xff09;是一个强大且至关重要的概念。它允许我们从多个表中检索数据&#xff0c;从而实现更复杂的查询和数据分析。本文将深入探讨联结的概念…...

【C++】函数重载+引用

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解C的函数重载和引用&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 一. 预处理、编译、汇编、链接二. 函数重载1 概念2 C支持函数重载的原理—名字修饰…...

华为S5735交换机console密码重置和恢复出厂设置

比较简单&#xff0c;简单说就是进入bootload清除密码&#xff0c;然后进入default mode下重置密码。 1.开机按CtrlB&#xff0c;进入启动加载菜单&#xff08;BootLoad menu&#xff09; 拨电源重启交换机&#xff0c;大约开机10多秒的时候会出现提示按CtrlB可以进入BootLoa…...

Spring Security无脑使用

步骤1&#xff1a;添加Spring Security依赖 在你的Spring Boot项目的pom.xml文件中&#xff0c;添加Spring Security的依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</art…...

学习 PostgreSQL + Spring Boot 3 +mybatisplus整合过程中的报错记录

今天计划学习 PostgreSQL&#xff0c;并顺便尝试使用 Spring Boot 3.x 框架&#xff0c;打算整合 Spring Boot 3、PostgreSQL 和 MyBatis-Plus。整合后一直出现以下报错&#xff1a; 去AI上面搜了讲的是sqlSessionFactory 或 sqlSessionTemplate 没有正确配置 初始分析&#…...

立仪光谱共焦传感器在玻璃测量技术上的突破

近年来&#xff0c;随着科技的不断发展&#xff0c;光谱共焦传感器逐渐成为了工业检测领域的重要工具。尤其是在玻璃这种透明材质的厚度测量中&#xff0c;光谱共焦传感器展现出了其独特的优势。立仪科技小编将围绕光谱共焦传感器在玻璃行业中的应用&#xff0c;从问题、分析到…...

Llama系列上新多模态!3.2版本开源超闭源,还和Arm联手搞了手机优化版,Meta首款多模态Llama 3.2开源!1B羊驼宝宝,跑在手机上了

Llama系列上新多模态&#xff01;3.2版本开源超闭源&#xff0c;还和Arm联手搞了手机优化版&#xff0c;Meta首款多模态Llama 3.2开源&#xff01;1B羊驼宝宝&#xff0c;跑在手机上了&#xff01; 在多模态领域&#xff0c;开源模型也超闭源了&#xff01; 就在刚刚结束的Met…...

系统缺失mfc140.dll的修复方法,有效修复错误mfc140.dll详细步骤

mfc140.dll丢失原因分析 1 系统文件损坏或病毒感染 系统文件损坏或被病毒感染是导致mfc140.dll丢失的常见原因之一。根据用户反馈和安全研究报告&#xff0c;大约有30%的mfc140.dll丢失案例与系统文件损坏或病毒感染有关。病毒、木马或其他恶意软件可能会破坏或删除系统中的m…...

移动app的UI和接口自动化测试怎么进行?

标题&#xff1a;从0到1&#xff1a;移动App的UI和接口自动化测试 导语&#xff1a;移动App的快速发展使得UI和接口自动化测试成为了确保应用质量的重要环节。本文将从零开始介绍移动App的UI和接口自动化测试的基本概念以及如何进行测试。 第一部分&#xff1a;了解移动App自动…...

Unity实现自定义图集(二)

以下内容是根据Unity 2020.1.0f1版本进行编写的   实现一个自定义图集,该怎么入手呢。首先简单思考一下unity是怎么实现图集的。 因为unity的ui部分是开源的,所以我们可以看到UGUI的源代码,另外,Unity的内置Shader也是开源的,可以直接在官网下载(在下载的网页选择Built…...

智能码二维码zhinengma.cn的动态数据更新是如何实现的?

智能码二维码的动态数据更新功能是通过其背后的技术原理实现的&#xff0c;主要依赖于服务器和二维码的链接结构。以下是具体介绍&#xff1a; 动态数据更新的实现原理 链接嵌入&#xff1a;动态二维码中嵌入了一个链接&#xff0c;该链接指向服务器上的数据源。数据请求与更…...

uniapp view怎么按长度排列一行最多四个元素,并且换行后,每一行之间都有间隔

推荐学习文档 golang应用级os框架&#xff0c;欢迎stargolang应用级os框架使用案例&#xff0c;欢迎star案例&#xff1a;基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识&#xff0c;这里有免费的golang学习笔…...

Android列表组件api

目录 1.ListView控件 1&#xff09;android:divider 2&#xff09;android:dividerHeight 3&#xff09;android:entries 4&#xff09;android:footerDividersEnabled 5&#xff09;android:headerDividersEnabled 6&#xff09;android:listSelector 7&#xff09;android:sc…...