Mysql之连接查询(交叉连接,内连接,外连接,using关键字使用场景)

10-MySQL--连接查询(交叉连接+内连接+外连接+自然连接)+using关键字+多表连接 一、连接查询 1、连接查询:将多张表连接到一起进行查询(会导致记录数(行)和字段数(列)发生改变) 2、连接查询的意义:关系型数据库,实体(表)与实体之间存在很多联系。表的设计,遵循着关系来设计(一对一、一对多和多对多)。通常,在实际操作的过程中,需要利用这层关系来保证数据的完整性 3、连接查询:join。使用方式:左表 join 右表 (1)左表:在join关键字左边的表 (2)右表:... 阅读详情

连接查询

连接查询:将多张表连到一起进行查询(会导致记录数行和字段数列发生改变)

连接查询的意义

在关系型数据库设计过程中,实体(表)与实体之间是存在很多联系的。在关系型数据库表的设计过程中,遵循着关系来设计:一对一,一对多和多对多,通常在实际操作的过程中,需要利用这层关系来保证数据的完整性。

连接查询分类

连接查询一共有以下几类:

交叉连接

内连接

外连接:左外连接(左连接)和右外连接(右连接)

自然连接

交叉连接

交叉连接:将两张表的数据与另外一张表彼此交叉

原理

1、 从第一张表依次取出每一条记录

2、 取出每一条记录之后,与另外一张表的全部记录挨个匹配

3、 没有任何匹配条件,所有的结果都会进行保留

4、 记录数 = 第一张表记录数 * 第二张表记录数;字段数 = 第一张表字段数  + 第二张表字段数(笛卡尔积)

语法

基本语法:表1 cross join 表2;

应用

交叉连接产生的结果是笛卡尔积,没有实际应用。

内连接

内连接:inner join,从一张表中取出所有的记录去另外一张表中匹配:利用匹配条件进行匹配,成功了则保留,失败了放弃。

原理

1、 从第一张表中取出一条记录,然后去另外一张表中进行匹配

2、 利用匹配条件进行匹配:

2.1 匹配到:保留,继续向下匹配

2.2 匹配失败:向下继续,如果全表匹配失败,结束

语法

基本语法:表1 [inner] join 表2 on 匹配条件;

1、 如果内连接没有条件(允许),那么其实就是交叉连接(避免)

2、 使用匹配条件进行匹配

3、 因为表的设计通常容易产生同名字段,尤其是ID,所以为了避免重名出现错误,通常使用表名.字段名,来确保唯一性

4、 通常,如果条件中使用到对应的表名,而表名通常比较长,所以可以通过表别名来简化

5、 内连接匹配的时候,必须保证匹配到才会保存

6、 内连接因为不强制必须使用匹配条件(on)因此可以在数据匹配完成之后,使用where条件来限制,效果与on一样(建议使用on)

应用

内连接通常是在对数据有精确要求的地方使用:必须保证两种表中都能进行数据匹配。

外连接

外链接:outer join,按照某一张表作为主表(表中所有记录在最后都会保留),根据条件去连接另外一张表,从而得到目标数据。

外连接分为两种:左外连接(left join),右外连接(right join)

左连接:左表是主表

右连接:右表是主表

原理

1、 确定连接主表:左连接就是left join左边的表为主表;right join就是右边为主表

2、 拿主表的每一条记录,去匹配另外一张表(从表)的每一条记录

3、 如果满足匹配条件:保留;不满足即不保留

4、 如果主表记录在从表中一条都没有匹配成功,那么也要保留该记录:从表对应的字段值都未NULL

语法

基本语法:

左连接:主表 left join 从表 on 连接条件;

右连接:从表 right join 主表 on连接条件;

左连接对应的主表数据在左边;右连接对应的主表数据在右边:

特点

1、 外连接中主表数据记录一定会保存:连接之后不会出现记录数少于主表(内连接可能)

2、 左连接和右连接其实可以互相转换,但是数据对应的位置(表顺序)会改变

应用

非常常用的一种获取的数据方式:作为数据获取对应主表以及其他数据(关联)

Using关键字

是在连接查询中用来代替对应的on关键字的,进行条件匹配。

原理

1、 在连接查询时,使用on的地方用using代替

2、 使用using的前提是对应的两张表连接的字段是同名(类似自然连接自动匹配)

3、 如果使用using关键字,那么对应的同名字段,最终在结果中只会保留一个。

语法

基本语法:表1 [inner,left,right] join 表2 using(同名字段列表); //连接字段

总结:应避免使用交叉连接,看情况使用内连接或者外连接,当要以一表数据为主,使得查询的记录数不会少于此表记录数时考虑外连接,当严格按照条件进行匹配时,使用内连接比较合适,当两表条件字段名一致时,可以使用using关键字。 

MySQL--多表连接(内连接、外连接、交叉连接--笛卡尔积) MySQL--多表连接查询1、多表连接语法与种类3、文末彩蛋--轻松一刻      更多关于数据库知识请加关注哟~~。若需联系和想安装MySQL请加博主:      QQ:3327908431      微信:ZDSL1542334210 &nbsp... 阅读详情

相关推荐

浅谈mysql数据库中的using的用法

mysql中using的用法为: using()用于两张表的join查询,要求using()指定的列在两个表中均存在,并使用之用于join的条件。 示例: 代码如下:   select a.*, b.* from a left join b using(colA);   等同于: 代码如下:   select a.*, b.* from a left join b on a.colA = b.colA; 以上所述就是本文的全部内容,希望大家能够喜欢。 您可能感兴趣的文章:Mysql之EXPLAIN显示using filesort介绍mys

Mysql using 用法

Mysql using 用法...

wgchen 1万+

基于知识图谱的旅游推荐系统

这一系统整合了当今先进的数据技术:采集携程等大型平台的景点数据,通过爬虫技术源源不断地获取最新的旅游信息。此外,我们采用Neo4j图数据库来存储和处理这些数据,结合自然语言处理技术,为你提供精准的旅游建议。:通过直观的知识图谱展示,了解各个景点之间微妙的联系,无论是文化背景还是地理方位,你都能从中发现新的旅行灵感。准备毕业设计的同学,关注我们,这是一个集成了多种前沿技术的项目,为你的学术成果锦上添花。:不再浪费时间,系统根据你的偏好和历史评分,利用协同过滤技术推荐适合的旅游目的地。

qalangtao的博客-qalangtao.com 774

MYSQL (using关键字)

using关键字 目标:了解using关键字的作用。 using关键字的概念:连接查询时如果是同名字段作为连接条件,using可以代替on出现(比on更好) using是针对同名字段(using(id)===on A.id=B.id) using关键字使用后会自动合并对应字段为一个 using可以同时使用多个字段作为条件 演示案例 1.需要进行连表进行数据查询。 2.两个表的连接条件字段同名。 步骤: 1.需要进行连表进行数据查询。 2.两个表的连接条件字段同名。 3.使用using关键字作为连接条件。 演

xiaokkya的博客 8689

ONFI5.0命令字实战指南:从基础操作到高级应用

本文深入解析ONFI5.0协议的核心——命令字,提供从基础操作到高级应用的实战指南。详细拆解了NAND闪存的复位、读状态、数据读取(00-30)、页编程(80-10)和块擦除(60-D0)等关键命令周期,并探讨了多平面操作与缓存操作等高级性能优化技巧,帮助开发者高效、稳定地与NAND芯片进行底层交互。

vscode5coder的博客 463

(秋招)vins中的光流法

那么下一层基于这个初值也会得到一个解,就这样进行迭代,直到达到金字塔的最底层,也即第0层,就是原始分辨率的那张图片,此时光流法就会给出一个速度值,这个值是比较可靠的(相比对原始图片直接使用光流法来说)。2.小运动,这个也必须满足,就是时间的变化不会引起位置的剧烈变化,这样灰度才能对位置求偏导(换句话说,小运动情况下我们才能用前后帧之间单位位置变化引起的灰度变化去近似灰度对位置的偏导数),这也是光流法不可或缺的假定。可以看到光流法是来估计物体运动的(估计的是物体运动的速度,根据速度再计算相对应的特征点)。

努力coding 652

MySQL关键字—using和on

如果列名相同且只需要基于单一列进行连接,USING 是一个很好的选择。如果需要更复杂的连接条件或列名不匹配,ON提供了更大的灵活性

m0_70882914的博客 2035

【RT-DETR涨点改进】全网独家首发、特征融合改进篇 | AAAI 2026 | 引入CDEM交叉动态增强模块,双向引导和融合,在低光图像增强中有效提升了图像的亮度,提升小目标和暗目标的检测准确率

本文提出了一种基于CDEM(交叉动态增强模块)改进的rtdetr网络模型,有效提升了在低光和复杂环境下的目标检测性能。CDEM模块通过动态增强亮度与色彩特征,改善图像输入质量,增强细节和对比度。该模块具有轻量级结构,易于集成到现有模型中,能够显著提升小目标和暗目标的检测准确率与鲁棒性。文章详细介绍了CDEM模块的结构原理、实现方法,并提供了完整的代码实现和配置指南,包括三种改进版本的YAML配置文件。实验结果表明,该方法在图像增强和目标检测任务中均取得了优异性能。

Ai缝合怪、助力小伙伴高效发论文 145

MySQL INNER JOIN子句介绍

MySQL INNER JOIN子句介绍 MySQL INNER JOIN子句将一个表中的行与其他表中的行进行匹配,并允许从两个表中查询包含列的行记录。 INNER JOIN子句是SELECT语句的可选部分,它出现在FROM子句之后。 在使用INNER JOIN子句之前,必须指定以下条件: 首先,在FROM子句中指定主表。 其次,表中要连接的主表应该出现在INNER JOIN子句中。理论上说,可以连接多个其他表。 但是,为了获得更好的性能,应该限制要连接的表的数量(最好不要超过三个表)。 第三,连接条件或连

qq_42354307的博客 1330

YOLOv11改进有效系列目录 - 包含卷积、主干、检测头、注意力机制、Neck上百种创新机制 - 针对多尺度、小目标、遮挡、恶劣天气等问题

在一些特定情况下,目标检测任务由于多种因素的影响,变得更加复杂和困难。以下是几类常见的困难目标检测场景:1. 小目标检测定义:小目标检测是指当目标在图像中的占比非常小时,模型需要准确识别和定位这些目标。典型场景包括远程监控、卫星图像分析等。挑战1. 低分辨率:由于目标在图像中占据像素较少,细节缺失,特征提取难度增加。2. 特征不足:小目标缺乏明显的形状和纹理特征,容易被复杂背景淹没。3. 检测难度大:由于小目标与背景之间的对比度较低,误检的几率上升。4. 数据不平衡。

qq_64693987的博客 4万+

【DaVinci Developer专题】-36-创建一个“既读又写”的Sender Receiver Port(SR PR-Port)

有时会遇到SWC需要对一个Port进行“既可以读,也可以写”的操作。以下图为例,Test_A_SWC中Test_A_Port是P-Port;Test_B_SWC中Test_A_Port是R-Port。Test_C_SWC需要对Test_A_Port同时进行“读”和“写”。 该篇将详细介绍PR-Port的创建方法。 目录 1 创建一个S/R Port Interface 2 将一个PR-Port端口添加至Application Component 3 PR-Port端口初始化 4 Run.

「汽车电子助手」的博客 3013

MySQL多表操作

示例 不管是大型还是小型项目,一个数据库里都会有N张表,表之间也通过一对一、多对一或者多对多关系进行关联:如新闻管理系统 作者表:id、用户名、密码 新闻表:id、标题、内容、发布时间、作者id 显示新闻的时候是肯定需要显示作者姓名的 原始方式:查出新闻–>查出作者ID–>查出作者 步骤多 如果是批量显示新闻就更麻烦 多表操作:使用连接查询一条SQL搞定 小结 1、多...

ellen_mei_hua 487

半导体器件仿真:双极型晶体管仿真_15.双极型晶体管的高级仿真技术

双极型晶体管(Bipolar Junction Transistor, BJT)是一种重要的半导体器件,广泛应用于放大、开关和调制等电路中。随着半导体技术的发展,对BJT的仿真要求也越来越高。本节将详细介绍双极型晶体管的高级仿真技术,包括器件模型的选择、仿真参数的优化、温度效应的考虑以及噪声分析等。

2401_87715305的博客 1243

⑧【MySQL】数据库查询:内连接、外连接、自连接、子查询、多表查询

`多表关系`: - **一对一** :在`任意一方`加入外键,关联另一方的主键,并设置外键为唯一(UNIQUE)。 - **一对多(多对一)** :在`多`的一方建立外键,指向`一`的一方的主键。 - **多对多** :建立第三张表作为中间表,中间表**至少包含两个外键,分别关联双方主键**。 **笛卡尔积**:两个集合,集合A 与 集合B中元素的所有组合情况,在多表查询时需要使用`WHERE关键字`或 `JOIN ON关键字`消除笛卡尔积。

ebb29bbe的博客 6903

S7-1500 PLC与多台S7-200SMART PLC进行PROFINET通信的快捷方法

S7-1500 PLC与多台S7-200SMART PLC进行PROFINET通信的快捷方法

Robot_PLC_HMI_Automation 5689

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

SQL中的内连接查询和外连接查询

在项目开发中,单表的查询肯定无法满足所有的业务,所以很多时候都是多表的连接查询。接下来总结一下SQL中的多表关联查询,以MySQL为例。 前期准备 在数据库中创建以下几张表并添加一些数据。 1、部门表(tb_dept),如下 2、员工表(tb_emp),如下。可以看到后勤中心是没有员工的,一会看区别。 3、工资表(tb_salary),如下 三张表的关系是,一个部门有多个员...

好记性不如烂笔头 2万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

MySQL数据库-----多表查询--内连接,外连接,子查询,相关子查询

二、多表查询 使用单个select 语句从多个表格中取出相关的查询结果,多表连接通常是建立在有相互关系的父子表上; 1交叉连接 第一个表格的所有行 乘以 第二个表格中的所有行,也就是笛卡尔积 创建一个消费者与顾客的表格: 代码如下: -- create table customers( -- id int primary key auto_increment, -- name VARCHA...

小生不才 8103

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

MySQL 多表连接查询实战:内连接 + 外连接

在实际业务开发中,数据往往分散存储在多张关联表中,单表查询远不能满足复杂的统计与展示需求。多表连接查询正是解决跨表数据关联、整合与展示的核心手段,也是数据库开发中最常用、最重要的技能之一。本文将围绕 MySQL 内连接、左外连接、右外连接 的核心语法与使用场景,结合经典案例由浅入深精讲,帮你快速掌握多表查询的精髓,轻松应对日常开发与面试。

会当凌绝顶,一览众山小 2753

MySQL连接查询——MySQL 基础查询你会了吗?

前言: 由于大一学习数据库不扎实,学到后面有点吃力,所以回过头来认真学习一边,写一些学习总结,提醒自己。也要告诫读者,把基础打扎实。读者觉得有用的话可以收藏点赞哦! 上一篇:MySQL函数查询——MySQL 基础查询你会了吗? 文章目录2、MySql连接查询2.1、内连接(sql92 和sql99)2.1.1、sql92`1、等值连接`2、 为表起别名6、可以加排序吗?7、可以实现三表连接吗?2、非等值连接3、自连接2.1.2、sql99标准1、等值连接2、非等值连接3、 自连接2.2、外连接左外连接右.

weixin_44689277的博客 4849

MySQL中的内连接与外连接详解:基础与进阶应用

本文深入解析MySQL内连接与外连接的原理、应用及优化技巧。

酷酷的崽的博客 2245

Mysql数据库基本操作(六)多表查询-内连接查询,外连接查询

数据准备 use mydb3 ; --创建部门表 create table if not exists dept3 ( deptno varchar (20) primary key , --部门号 name varchar (20 )--部门名字 ); --创建员工表 create table if not exists emp3 ( eid varchar (20) primary key , --员工编号 ename varchar(20), --员工名字 age int, --员工年龄 dept_i

weixin_42445051的博客 4860

Mysql中的关联查询(内连接,外连接,自连接)

在使用数据库查询语句时,单表的查询有时候不能满足项目的业务需求,在项目开发过程中,有很多需求都是要涉及到多表的连接查询,总结一下mysql中的多表关联查询 一,内连接查询 是指所有查询出的结果都是能够在连接的表中有对应记录的。 以t_employee(员工表)和t_dept(部门表)为例: t_employee表中的记录如下:dept代表该员工所在的部门 t_dept表中记录

lu0422的博客 16万+

【MySQL】表的内连接和外连接

然后就可以引出外连接的概念了:如果把悬浮元组也保留在结果中,其它属性填上空置,那么这种连接就叫做外连接。如果只保留左表中的悬浮元组,那就叫左外连接;如果只保留右表中的悬浮元组,那就叫右外连接。所以,对于上面两张表,外连接的结果应该是这样的那么左外连接就应该是这样:只保留左表的悬浮元组嘛查询所有学生的成绩,如果这个学生没有成绩,也要将学生的个人信息显示出来所以左外连接的结果不就是题目想要的嘛。学生id为3,4的两名学生没有成绩,但是也把信息也是出来了。

m0_70980326的博客 1548

内连接(等值、非等值连接)、外连接(左外连接、右外连接、全连接)、自然连接、自连接

内连接(等值、非等值连接)、外连接(左外连接、右外连接、全连接)、自然连接、自连接

phs999的博客 1万+

MySQL数据库 多表查询 交叉连接 自然连接 内连接 自连接 外连接 子查询 多表查询练习 单表查询练习

** 1,多表查询前创建表 ** 1,创建库test create database test; 2,创建部门表dept(deptno dname loc) create table dept( deptno int(4) primary key, dname varchar(20), loc varchar(20) ); 3,创建雇员表emp ...

嘎嘎_哈 1961

MySQL连接查询(内连接,外连接,全连接)

对比分析MySQL连接查询(内连接,外连接,全连接)内连接等值连接非等值连接==自连接==外连接左外连接右外连接全外连接交叉连接内连接等值连接非等值连接外连接 首先建三个数据表 sql文件下载 https://wwr.lanzous.com/i16UCob7sbg 密码:f2z5 (蓝奏云不能上传sql文件,下载后先改成sql后缀) employees jobs levels 内连接 关键字 inner join…on… inner 可以省略 等值连接 查询员工工资信息 SELECT * F

RwTo的博客 3268
上一篇: 联合查询 union
下一篇: 子查询及其分类(标量子查询+列子查询+行子查询+表子查询)
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我才是真的封不觉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值