【MySQL】 join连接使用基本知识

【MySQL】提高篇—复杂查询:多表连接(INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN) INNER JOIN:只返回两个表中匹配的记录。LEFT JOIN:返回左表的所有记录及右表中匹配的记录。RIGHT JOIN:返回右表的所有记录及左表中匹配的记录。FULL JOIN:返回两个表中的所有记录(通过 UNION 实现)。这些连接操作在实际应用中非常重要,能够帮助我们从多个表中提取和组合数据,以满足复杂的查询需求。 阅读详情

以前用过Oracle,新项目接触mysql,很多东西都差不多。

关于mysql join连接的基本使用,网上资料很多,这里更多的是谈谈我自己的理解。A、B两表连接可以理解为根据on条件构建一个虚拟表,其中包含A、B所有字段。

A表结构:id,name,code;
B表结构:id,name,class,grade;

  1. 内连接 inner join
    以name关联A、B两表,并显示出其全部字段。
    select * from A (inner) join B on A.name = B.name;

  2. 左外连接 left join
    select * from A left join B on A.name = B.name;
    A左连接B表,A表内容全部检索出来,B表只检索出来name相当的结果。同时可以加Where条件来筛选内容。

    如果想要检索出A表有而B表没有的字段,那么就需要到Where条件了。
    select * from A left join B on A.name = B.name where B.name is null。
    现在开始设想由A左连接B构成的虚拟表中,去除B.name为NULL的行,就可以得到想要的结果集。

  3. 右外连接 right join
    用法同左外连接。

  4. 交叉连接 cross join
    交叉连接就是返回的记录数为两个表的记录数乘积,也就是将两表的数据做组合处理,保证每条数据都有与另一表中的每条数据有匹配结果。
    在行列转换时,可以配合一个序列化表实现交叉连接实现。
    1、对其检索结果用coalesce函数和case when函数做列转行处理,得到行列结果。
    2、利用REPALCE函数,SUBSTRING、SUBSTRING_INDEX函数和LENGTH函数对检索结果做一行转多行,实现属性拆分。
    PS:coalesce函数的使用:coalesce(item1,item2,item3),依次判断item值,返回第一个不为null的值,若全为null,则返回null。

  5. 利用连接删除重复数据
    例如:删除重复数据,保留id最大的记录
    delete a from user1_test a join (select user_name,count(1),max(id) from user1_test group by user_name having count(1) > 1 ) b on a.user_name = b.user_name where a.id < b.id;

  6. 利用join更新表的用法
    例如,更新B表中name为张三的grade值为100,且张三必须在A表中存在。
    update A innner join B on A.name = B.name set B.grade = 100 where A.name = “张三”;

Mysql 7种join连接方式深入分析 一,定义: 1)LEFT JOIN / LEFT OUTER JOIN:左外连接 左向外连接的结果集包括:LEFT OUTER子句中指定的左表的所有行,而不仅仅是连接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。 2)RIGHT JOIN / RIGHT OUTER JOIN:右外连接 右向外连接是左向外联接的反向连接。将返回右表的所有... 阅读详情

相关推荐

MySQL 连接(JOIN)使用 简单讲解与示例

目录前言连接的概念内连接 INNER JOIN连接中的重命名我 连 我 自 己WHERE子句的必要性外连接左连接右连接小结习题123456 前言 上数据库的时候遇到的比较难懂的,今天记录一下。 在实际应用场景中,往往一个事务需要查询多个数据表。通过两个表之间称之为 “外键” 的列来建立连接关系。 关于外键:mysql外键(FOREIGN KEY)简单讲解与演示 连接的使用可以使得我们能够进行一些复杂的查询,下面细???? 连接的概念 连接即连接两张(或者多张)数据表,比如我们有: 员工信息数据表EMP,主

AKGWSB 's blog 1245

MySQL联接查询算法(NLJ、BNL、BKA、HashJoin)

一、联接过程介绍 为了后面一些测试案例,我们事先创建了两张表,表数据如下: 1 2 3 4 CREATE TABLE t1 (m1 int, n1 char(1)); CREATE TABLE t2 (m2 int, n2 char(1)); INSERT INTO t1 VALUES(1, 'a'), (2, 'b'), (3, ...

weixin_34326179的博客 1994

海外支付实战:虚拟信用卡订阅ChatGPT Plus等服务的完整指南

在跨境数字服务消费中,支付环节常因地区限制、银行风控等因素受阻。其核心原理在于国际信用卡交易需通过发卡行风控系统,而国内银行对高频、小额或商户名非常规的境外线上交易敏感,导致成功率不稳定。为解决这一痛点,虚拟信用卡技术应运而生,它通过服务商生成关联预充值账户的虚拟卡号,提供地域灵活性与资金可控性,显著提升了支付通过率。这项技术的价值在于以较低学习成本,为个人用户打通了访问ChatGPT Plus、Midjourney、Claude Pro等前沿AI服务的支付通道。其典型应用场景包括订阅各类海外SaaS、内容

weixin_42531579的博客 1032

MySQL 7种Join的定义&图解&示范&结果(所有join类型)

笛卡尔(Descartes)乘积又叫直积。假设集合A={a,b},集合B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)}

HumorChen的博客 1万+

GitLab社区版vs企业版:本地部署性能对比与选型建议(含实测数据)

本文深入对比GitLab社区版(CE)与企业版(EE)在本地部署中的性能差异与功能特性,提供实测数据与选型建议。测试显示EE版在并发克隆、CI流水线启动等场景性能提升显著,尤其适合需要高级安全合规与CI/CD功能的团队。文章还包含硬件配置指南与成本效益分析,帮助技术决策者做出明智选择。

weixin_28828243的博客 296

台式机ubuntu系统屏幕无法调节的问题(已解决)(汇总)

背景:新配了一台主机,安装了双系统,windows下屏幕在带鱼屏上显示良好,但Ubuntu系统屏幕拉伸严重。 问题描述:系统没有适应屏幕被整个拉伸了,进入设置界面,显示Built-in Display,分辨率只有1024*768无法设置。 尝试一:网上最多的方法就是使用xrandr, 结果显示:xrandr:Failed to get size of gamma for output default 尝试二: 第一次进入命令行页面:login:填你的用户面 password:使用字母上方的数字键输入你的密码

weixin_45626706的博客 4631

MySQL中关于JOIN的用法全解

一篇了解MySQL中JOIN各种高级用法

程序员Forlan的博客 7651

SpringBoot一次请求中缓存数据,请求结束就清除的4种方法,你会几种?

通过以上四种方法,你可以在 SpringBoot 的一次请求中缓存数据,并在请求结束后自动清除这些缓存数据。使用 ThreadLocal:适用于需要跨多个方法调用的缓存数据,灵活性高,但需要注意内存泄漏问题。使用 AOP:适用于全局性的缓存管理,代码更加优雅,但需要对 AOP 有一定的了解。使用 ServletRequestListener:适用于简单的请求生命周期管理,配置简单,但功能相对有限。使用 HttpServletRequest 的 setAttribute 和 getAttribute。

java专栏 1295

mysql几种join方式_Mysql常用的几种join连接方式

1.首先准备两张表部门表: 员工表: 以下我们就对这两张表进行不同的连接操作1.内连接作用:查询两张表的共有部分语句:Select from tableA A Inner join tableB B on A.Key = B.Key示例:SELECT * from employee e INNER JOIN department d on e.dep_id = d.id;结果显示:通过这个查找...

weixin_29113371的博客 1万+

Pareto 优化 (Pareto Optimization) 算法详解及案例分析

Pareto 最优解是指在多目标优化问题中,无法通过改进一个目标而不损害其他目标的解。具体来说,对于一个解x∗x^*x∗,如果不存在另一个解xxx使得所有目标函数fixf_i(x)fi​x都不劣于fix∗f_i(x^*)fi​x∗,且至少有一个目标函数fjxf_j(x)fj​x优于fjx∗f_j(x^*)fj​x∗,则x∗x^*x∗是 Pareto 最优解。

闲人编程的博客 2765

结构光相移法-多频外差原理与实践

结构光相移法是一种常用的三维形貌测量技术,它通过对投射到目标物体上的结构光进行相位调制和解调,实现对物体表面的三维重建。其中,多频外差原理是结构光相移法的核心原理之一,通过使用不同频率的结构光来实现相位测量,并可以提高测量精度和抗干扰性能。结构光相移法的多频外差原理是一种常用的三维形貌测量技术,它通过使用多个不同频率的结构光进行相位调制和解调,实现对物体表面的三维重建。本文介绍了多频外差原理的原理和实践应用,并提供了相应的Python源代码,希望对读者理解和应用结构光相移法有所帮助。

CodeByte的博客 737

mysql的JOIN用法详解-附带查询示例

在 SQL 中,JOIN是用于将多个表中的数据连接在一起的操作。它通过指定连接条件将两个或多个表中符合条件的行组合起来,产生一个新的结果集。SQL 中常见的 JOIN 类型包括和。

厚积薄发. 9485

uniapp 如何封装实现任意页面都能使用的全局弹窗

项目内容场景全局监听消息提示难点uniapp 无法全局挂载组件解决方案动态创建 DOM + 动态 Vue 实例优势跨页面 / 不依赖页面组件树 / 灵活调用如果你使用的是小程序平台,DOM 操作可能受限,需要用或方式兼容处理。想支持多个弹窗堆叠?你可以扩展,加个弹窗队列管理器。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 946

MySQL 之 join 详解

说明:本学习笔记参考了 慕课网《MySQL开发技巧(一)》视频教程,讲师 sqlercn 。 MySQL开发技巧(一)丨章节 http://www.imooc.com/learn/398SQL语言介绍 正确使用 SQL 语句是非常重要的。 1、增加数据库的处理效率,减少应用相应时间; 2、减少数据库服务器负载,增加服务器稳定性; 3、减少服务器间通讯的网络流量。join 语句的类型

李威威的博客 893

gb28181之rtp负载之h264

我们知道国标中支持的媒体流格式不止一种,其中最常见的就数PS和h264(ES流中的其中一种)了,PS流我们之前的博文中已经分享过了,本篇博文我们来一起聊聊国标中媒体流的负载为h264的细节。 我们知道h264为了方便网络传输,把原始数据分装成了多个NALU,而NALU包大小是不固定的,因此有时候一个rtp包中可以负载多个NALU,有时候一个rtp包中只负载一个NALU,有时候多个rtp包中包含的...

2093

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

MySQL JOIN :多表连接的艺术

关系型数据库的核心价值在于数据之间的关联,MySQL 的 JOIN 操作是实现这种关联的关键技术。本文将深入解析各种 JOIN 类型的原理、应用场景和性能优化策略,帮助开发者掌握高效的多表查询技术。各种JOIN类型的原理和适用场景复杂多表连接的实现技巧性能优化策略和执行计划分析实际业务中的经典应用案例最佳实践和常见问题解决方案设计高效的关联查询解决复杂的数据关系问题优化JOIN查询性能避免常见的连接使用误区使用EXPLAIN分析JOIN执行计划为连接条件创建合适的索引。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 2万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

MySQL 七种JOIN连接详解

本文将详细介绍 MySQL 中的各种 JOIN类型,并通过具体的例子进行说明。

驴大毛的博客 2077

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

MySQL 中常用的几种连接(JOIN)方式

摘要:MySQL常用的四种JOIN方式包括:INNER JOIN(仅返回匹配记录)、LEFT JOIN(保留左表所有记录)、RIGHT JOIN(保留右表所有记录)和FULL OUTER JOIN(通过UNION实现)。INNER JOIN适合需要匹配数据的场景,LEFT JOIN常用于包含左表全部数据的查询,RIGHT JOIN可通过交换表顺序替代,而FULL OUTER JOIN在MySQL中需用UNION实现。使用时需考虑性能和业务需求,并建议为连接字段建立索引。(148字)

记录学习编程的日常 2077

MYSQL 的几种join连接方式

一、关于JOIN语法【内容来自于mysql手册】 MySQL支持以下JOIN语法。这些语法用于SELECT语句的 table_references 部分和多表DELETE和UPDATE语句: table_references: table_reference [, table_reference] … table_reference: table_factor | join_table

zhengwish的专栏 2万+

MySQL 中的表连接(JOIN)详解

MySQL 中表连接(JOIN)详解

alivinFer的个人博客 2153

【MySQL入门·连接查询】12.4 CROSS JOIN

CROSS JOIN是MySQL中一种强大的连接操作,它允许您获取两个或多个表的笛卡尔积。然而,在使用它时需要特别注意性能问题和查询逻辑的设计。通过优化查询、限制结果集大小、使用索引以及仔细选择使用场景,您可以有效地利用CROSS JOIN来满足您的数据检索需求。同时,不要忘记了解其他JOIN类型,以便在需要时选择最适合您查询需求的连接方式。通过深入理解CROSS JOIN的工作原理、优化策略以及应用场景,您将能够更好地利用这一功能来执行复杂的查询操作并提取所需的数据。

Python老吕的博客 4390

mysql中join内外连接查询例子

连接(join)就是将一张表中的行按照某个条件(连接条件)与另一张表中的行连接起来形成一个新行的过程。这个过程可以用来合并相关联的数据,以便于进行查询、分析或其他操作。第三种:右外连接查询(RIGHT JOIN):返回右表中的所有行,以及左表中匹配的行,如果左表中没有匹配的行,则显示 NULL 值。第二种:左外连接查询(LEFT JOIN):返回左表中的所有行,以及右表中匹配的行,如果右表中没有匹配的行,则显示 NULL 值。第一种:内连接查询(INNER JOIN):返回同时在用户表和订单表中存在的行。

分享技术,分享经验 2044

【MySQL基础-12.2】MySQL 外连接详解:LEFT JOIN, RIGHT JOIN 和 FULL JOIN 的全面指南

外连接是 SQL 连接操作的一种,它会返回连接表中至少一个表的所有记录,即使在另一个表中没有匹配的记录。当没有匹配时,结果集中对应列将显示为 NULL。与内连接(INNER JOIN)不同,内连接只返回两个表中都有匹配的记录,而外连接可以保留"孤儿"记录(即没有匹配的记录)。

weixin_39033358的博客 2169

mysql inner join_MySQL内连接(INNER JOIN)

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

weixin_30951515的博客 3142

mysql join的使用

MySQL 支持以下 JOIN 语法用于 SELECT 语句和多表 DELETE 和 UPDATE 语句中的。

qq_24510649的博客 1217
上一篇: Java 字符串{0}占位符的使用方法
下一篇: 【MySQL】基础知识-case when函数
fooagiph
博客等级 码龄16年 0粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值