MySQL之多表查询

devtools/2024/9/25 19:18:26/

1. 前言

  • 多表查询,也称为关联查询.指两个或两个以上的表一起完成查询操作.
  • 前提条件 : 这些一起查询的表之间是有关系的(一对一/一对多).他们之间一定是有关联字段,这个关联字段可能建立了外键,也可能没有建立外键.

2. 笛卡尔积现象(交叉连接)

(1).例 : 

如果我们在两个表中未进行条件关联,直接查找,可能会出现笛卡尔积现象.即第一张表的一个数据需要跟第二张表的所有数据匹配.又称交叉连接.

06ccc2894ba8412da338efae51012d8f.png

  • 图中2889条数据=第一张表的记录数X第二张表的记录数.
  • CROSS JOIN的作用就是可以把任意表进行连接,即使这两张表不相关.
  • 为了避免出现笛卡尔积现象,我们可以在WHERE子句中加入有效的条件.

3. 带有连接条件的多表查询

例 : 

51e06243af564e038d17244658638937.png

  • 从第一张表的第一条记录开始,与第二章表的所有记录进行条件关联,剩下的是满足关联条件的记录. 只剩下106条记录.因为employees表中第一条记录的departmentid字段为null.
  • FROM子句中,可以给表起别名.一旦起了别名,后续WHERE子句中,就不能使用以前的表名了.相当于表的别名对原先的表名进行了覆盖.

4. 多表查询的分类

  • 等值连接与非等值连接
  • 自连接与非自连接
  • 内连接与外连接

5. 等值连接与非等值连接

(1).等值连接 : 

上述例就是等值连接.因为连接条件是=运算符.

(2). 非等值连接 : 

自然而然,连接条件不是=运算符的,即是非等值连接.比如 : 

9d95a5ad116f43928e401890cf9714be.png

  • 当查询的字段是两个表中的共有字段时,需要指定是哪个表中的字段.不然会报错.
  • 对于数据库中表记录的查询和变更,只要涉及多个表,都需要在列名前加表的别名进行限定(如d.locationid).

6. 自连接与非自连接

(1). 自连接

例 : 


http://www.ppmy.cn/devtools/23630.html

相关文章

MySQL-数据目录

一、MySQL的主要目录结构(MySQL 8) [rootlocalhost ~]# find / -name mysql find: ‘/proc/30845’: 没有那个文件或目录 find: ‘/proc/30855’: 没有那个文件或目录 /etc/logrotate.d/mysql /etc/selinux/targeted/active/modules/100/mysql /etc/sel…

富唯智能案例|双3D相机引导衔架抓取铝型材

随着制造业的快速发展和自动化水平的不断提升,铝型材的自动化抓取和加工成为行业内的一大技术难题。铝型材因其轻便、耐腐蚀、易加工等特点,广泛应用于建筑、汽车、电子等领域。然而,铝型材的形状多样、尺寸不一,以及生产线上的高…

MyBatis处理SQL中的特殊字符

方式一&#xff1a;转义字符 如下案例&#xff1a; < 表示小于的转义字符 <!-- 在Mapper XML文件中定义SQL语句 --> <select id"selectById" resultMap"BaseResultMap">select *from userwhere id < #{id}; </select>方式二&am…

深度研究DSNeRF代码(慢慢更新)

2.此部分的代码 是从https://github.com/Fyusion/LLFF/tree/master?tabreadme-ov-file#1-recover-camera-poses里提取出来的模块&#xff0c;作用是&#xff1a;用于使用colmap生成npy文件poses_bounds.npy 3.此py文件 也是从https://github.com/Fyusion/LLFF/tree/master?ta…

Python转换文本文件为PDF文档,绘制文本到PDF文档页面

文本文件因其轻便、易编辑的优势&#xff0c;常用于日常文字记录与数据交换&#xff1b;而PDF文档则以高保真、格式稳定和良好的阅读体验&#xff0c;成为正式报告、文献发布等场景的首选。将文本文件转为PDF&#xff0c;在PDF内精准绘制文本&#xff0c;旨在兼顾内容的规范呈现…

Oracle 数据迁移同步优化(三)

简述 CloudCanal 最近再次对其 Oracle 源端数据同步进行了一系列优化&#xff0c;这些优化基于用户在真实场景中的反馈&#xff0c;具备很强的生产级别参考意义。 本文将简要介绍这些优化项&#xff0c;希望带给读者一些收获。 增量事件 SCN 乱序问题MISSING_SCN 事件干扰新…

【ARMv9 DSU-120 系列 9 -- DSU-120 Debug block】

请阅读【Arm DynamIQ™ Shared Unit-120 专栏 】 请阅读【ARM Coresight SoC-400/SoC-600 专栏导读】 文章目录 ARM DSU-120 Debug BlockCluster debug componentsCache DebugDSU-120 Cache Debug 特性应用场景Terminology处理元素(PE)

JAVA实现easyExcel下载压缩包

添加pom依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version> </dependency> <dependency><groupId>org.apache.ant</groupId><artifactId>…