SQL的多表连接查询(难点)

自动驾驶控制算法——MPC控制算法 自动驾驶MPC控制算法摘要 模型预测控制(MPC)是一种基于系统预测模型的先进控制算法,通过滚动优化方式求解最优控制输入。其核心流程包括:1)使用数学模型预测未来系统状态;2)定义优化目标函数衡量预测误差;3)求解满足约束的最优控制序列;4)仅执行第一步控制并重复该过程。 相比传统PID控制,MPC具有预测未来、多步优化、显式处理约束等优势,特别适合自动驾驶中对安全性要求高的场景,如轨迹跟踪、车道保持、联合纵横向控制、自动泊车和动态避障等。MPC通过状态空间模型预测系统行为,在每个控制周期计算未来N步的控制 阅读详情

多表连接查询(难点)

连接查询 join

·连接查询用于根据表之间的关联关系(通常是外键)从多个表中获取数据

·as:起别名 可以省略用空格代替

·若两表有匹配行:行数取决于匹配的数量,可能为“1对1”(内连接找交集,行数不变)、“1对多”(比如左连接左边一行对应右边多行时,行数增加),极端情况下(如无有效关联条件)可能为两表行数的乘积(笛卡尔积)。

常见的连接类型包括:

1.内连接:[inner] join(查找显示两个表中相同字段的内容)

查询多张表(自连接一张表)中相关联的内容。

只返回多个表中匹配条件的记录,是最常用的连接方式。

只保留两表中同时满足关联条件的行

select 字段名

from 总表

inner join 表2 on 表1.某个相同字段=表2.某个相同字段

[inner join 表3 on 表3.某个相同字段=表1.某个相同字段

……];

只有在两个表中相同字段匹配的行才会出现在结果集中。

# 多表联查,通过inner join关联三个表:orders,users,products

# 关联条件是:

订单的用户 ID (o.user_id) 匹配用户表的 ID (u.id),

订单的商品 ID (o.product_id) 匹配商品表的 ID (p.id)

# 查询所有订单的用户和商品信息

select

o.id as 订单id,

u.username as 用户名,

p.name as 商品名称,

o.total_amount as 总金额

from orders o

inner join users u on o.user_id = u.id

inner join products p on o.product_id = p.id;

# 把所有订单的用户和商品信息全部排列组合一遍

# 同样关联三个表,查询字段更多

select

o.id as 订单id,

u.username as 用户名,

p.name as 商品名称,

o.quantity as 购买数量,

o.total_amount as 总金额,

o.create_time as 下单时间

from orders o

inner join:user u on o.users_id = u.id

inner join products p on o.product_id = p.id

where o.status = '已完成'

order by o.create_time desc;

# 笛卡尔查询(交叉连接cross join):将所有表中的所有内容都排列组合一次,不加关联条件时会产生。

·后面没写on+关联条件,产生 “笛卡尔积”(行数 = 表 A 行数 × 表 B 行数)

select

o.id as 订单id,

u.username as 用户名,

p.name as 商品名称,

o.quantity as 购买数量,

o.total_amount as 总金额,

o.create_time as 下单时间

from orders o

inner join users u

inner join products p;

2.左(外)连接:left join/left outer join

·返回左表中所有数据和右侧表中匹配条件的记录,右侧表无匹配则显示NULL

·以左侧的表为基准,获取所有数据,右表显示匹配到的数据,匹配不到的显示null(意思就是说,左连接会返回左表中的所有行,以及右表中与左表满足连接条件的行。如果右表中没有匹配的行,则对应列的值为NULL。)

select * from 主表 left join 从表 on 表1.字段 = 表2.字段;

# 查询所有用户及其订单情况(包括没有订单的用户)

select

    u.username as 用户名,

    count(o.id) as 订单数,

    ifnull(sum(o.total_amount), 0) as 总消费

from users u  

left join orders o on u.id = o.user_id

group by u.id, u.username;

3.右(外)连接:right join/right outer join

将右侧侧表中所有数据和左侧表中相关联数据查询出来,左侧表无关联则显示NULL

select * from 主表 right join 从表 on 表1.字段 = 表2.字段;

# 查询所有商品及其被购买情况(包括未被购买的商品)

select

p.name as 商品名称,

ifnull(sum(o.quantity),0) as 销售总量

from orders o

right join products p on o.product_id = p.id

group by p.id, p.name;

4.自连接:self join

将表与自身进行连接,通常用于处理表中存在层级关系

# 查询和”张三”同城市的用户

select u2.username, u2.city

from users u1

join users u2 on u1.city = u2.city

where u1.username = ‘张三’ and u2.username !=’张三’;

联合查询union

合并时,两个表对应的列数和数据类型必须相同或者兼容。最终结果集的列数等于单个查询的列数,结果集的行数是多个查询结果的行数总和(union是去重后的总和,union all是不去重的总和)

1.union

合并结果集并去除重复的行

select 字段1, 字段2, ……

from 表1

where 条件

union

select 字段1, 字段2, ……

from 表2

where 条件;

2.union all

合并结果集但保留重复记录(效率比union高)

select 字段1, 字段2, ……

from 表1

where 条件

union all

select 字段1, 字段2, ……

from 表2

where 条件;

连接查询与联合查询的区别

特性

连接查询(join)

联合查询(union)

作用

横向关联多个表的数据

纵向合并多个查询的结果集

表关系

基于表间关联条件(如外键)

无关联要求,但列结构需一致

结果集结构

列数为各表列数之和

列数与各查询的列数相同

使用场景

需要同时展示多个表的关联信息

需要合并多个相似结构的查询结果

33、AI赋能5G/6G通信:LDPC码解码与强化学习技术解析 本文探讨了基于AI和强化学习的LDPC码技术在5G/6G通信中的应用。包括LAMS解码器、神经MS解码器、盲识别方法、统一极性-LDPC解码器、NNMS和SNNMS解码器、N-2D-NMS解码器、神经分层MS解码器、MAB-NS方案以及强化学习与MCTS结合的技术。这些技术在提升解码性能、降低计算复杂度和增强系统适应性方面表现出色,为未来通信系统的发展提供了强有力的支持。 阅读详情

相关推荐

高通量测序数据分析:RNA-seq

深度测序相关数据库与数据格式 SRA toolkit 一、NCBI 和EBI、DDBJ组成INSDC,数据内容相同所以找NCBI就行。 (一)NCBI常用数据库 GenBank:遗传序列数据库,收集了所有公开的DNA序列及其注释 GEO (Gene Expression Omnibus) :收集整理各种表达芯片数据,后来加入了甲基化、lncRNA、miRNA、CNV等其他芯片,还有高通量测序数据...

qq_41134363的博客 3万+

MySQL学习(三)——多表连接查询

MySQL的多表连接查询,包括内连接、外连接、自连接、子查询

ifhuke的博客 8453

从2804云台电机到桌面机械臂:一个STM32/GD32玩家的FOC驱动踩坑全记录

本文详细记录了从2804云台电机到桌面机械臂的FOC驱动开发历程,涵盖了硬件选型、驱动方案优化、软件调试等关键环节。特别分享了L6234P驱动芯片的发热问题、AS5600编码器的I2C通信陷阱以及PID调参的实战经验,为DIY爱好者提供了宝贵的参考。

weixin_26897585的博客 474

MySQL多表查询内连接外连接详解,join、left join、right join、full join的使用

MySQL多表查询内连接外连接详解,join、left join、right join、full join、union、union all的使用及案例

睡竹的博客 9940

【实战解析】Ubuntu双网卡冲突:如何解决同一网段下网关无法访问及上网问题

本文深入解析Ubuntu服务器双网卡配置在同一网段时引发的路由冲突问题,导致网关无法ping通及无法上网。通过分析路由表与Metric值原理,提供使用route命令调整优先级及修改Netplan配置文件的实战解决方案,确保主次路由明确,一劳永逸解决网络冲突。

f9g0h的博客 280

ISP Tuning实战:从零开始调校相机传感器的完整流程(附避坑指南)

本文详细介绍了ISP Tuning的完整实战流程,即如何从零开始调校相机传感器以优化成像质量。内容涵盖从黑电平校正、镜头阴影校正等基础标定,到自动曝光、伽马校正、色彩校正等核心画质调校,再到降噪与锐化的平衡策略,并提供了关键的避坑指南。掌握ISP Tuning是提升相机传感器性能、实现从‘能用’到‘好用’的关键技术。

weixin_32098457的博客 196

多表联查(多表连接)(join)

多表联查(多表连接)(join)1、 分类内连接、自然连接、外链接(左外连接、右外连接、全外连接(mysql不支持))2、 内连接 inner join(等值连接,制定对应的等值条件)SELECT * FROM emp,dept;/*得到的数据是不对的*/得到的数据叫做笛卡尔积:结果是两个表数据的乘积使用内连接去查SELECT * FROM emp INNER JOIN dept;结果依然是笛卡尔...

qq_41426442的博客 5万+

MATLAB联合Fluent优化仿真

matlab与fluent交互

keleke_的博客 4722

多表连接查询详解

多表连接查询详解

gezishan007的博客 7625

搜索引擎——ElasticSearch汇总

汇总——ElasticSearch篇 全文检索 问题1:什么是全文检索? 基本概念:对**非结构化数据/结构化数据**先建立**索引**,再对索引进行搜索**文档**的过程叫做全文检索。 什么是非结构化与结构化数据? - 非结构化数据:没有固定的格式的数据(html,word,excel)---没有固定长度,字段约束,描述,散列数据 - 结构化数据:有固定的格式的数据(如:数据库数据)---有固定长度(varchar(50)),字段类型,描述修饰数据 搜索算法:顺序扫描法、倒排索引法 - 顺序

alonewolf_99的博客 1838

YOLOv8【第十一章:视频追踪与流处理篇·第6节】BoT-SORT 改进:结合相机运动补偿(CMC)提升追踪稳定性!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 717

mysql如何分表以及合并查询

MySQL 可以使用分表技术来提高查询性能。分表的方法有很多种,常见的有按照时间、按照范围、按照哈希值等。 具体实现方法可以参考以下步骤: 在数据库中创建多个表,每个表的数据都有一个共同的字段,用来区分不同的表。 在应用程序中,根据共同字段的值,将数据插入到对应的表中。 在查询时,根据共同字段的值,在对应的表中查询数据。 如果需要合并查询,可以使用 UNION 或 UNION ALL 操作符将...

weixin_35757191的博客 1291

【大模型工程局】告别单打独斗:手把手带你构建多智能体系统(MetaGPT 启示录)

想象一下,不再是只有一个全知全能的 AI,而是有一群各有所长、能够独立思考和行动的“智能体”(Agent)。它们生活在一个共同的环境中,可以相互交流、协作完成共同目标,也可能为了有限资源而相互竞争。这就是多智能体系统(MAS)的核心图景。MAS 的关键特征:自治性 (Autonomy):每个智能体都能独立感知环境、做出决策并执行动作,无需外部直接控制。交互性 (Interaction):智能体之间可以通过某种通信机制(显式或隐式)交换信息、协调行为。

高校图书馆高级系统架构师/研究馆员,推动高校AI从概念演示到可评审、可交付、可运维:路线图与立项评审、PoC交付、评测回归与上线运维(Baseline/Eval/Ops)。 1183

MySQL数据库入门到大牛_基础_06_多表查询(重点难点;多表连接;92和99标准;MySQL实现内外连接,左外联机,右外连接,满外连接的语法;UNION使用;7种SQL JOINS的实现)

比如,连接三个表,至少需要两个连接条件。练习:查询出公司员工的 last_name,department_name, city,这几个字段在各自表中唯一存在。

分享学习成长历程,Winter is coming! 398

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Sql中多表连接查询详解

sql中多表连接查询

皮卡丘的情绪 2万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

SQL多表查询

概述:从多张表中进行数据查询例如:有以下两张表dept和emp:多表查询分类1、连接查询内连接:相当于查询A、B交集部分数据外连接:左外连接:查询左表所有数据,以及两张表交集部分数据(用的更多)右外连接:查询右表所有数据,以及两张表交集部分数据自连接:当前表与自身的连接查询,自连接必须使用表别名2、子查询。

weixin_45951205的博客 6286

SQL--多表查询

1). 删除之前 emp, dept表的测试数据2). 执行如下脚本,创建emp表与dept表并插入测试数据-- 创建dept表,并插入数据name varchar(50) not null comment '部门名称') comment '部门表';VALUES (1, '研发部'),(2, '市场部'),(3, '财务部'),(4,'销售部'),(5, '总经办'),(6, '人事部');-- 创建emp表,并插入数据。

Sakura_j_h_的博客 4254

MySQL-多表查询:多表查询分类、SQL99语法实现多表查询、UNION的使用、7种SQL JOINS的实现、SQL99语法新特性、多表查询SQL练习

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

小孔靠得住的博客 1525

SQL多表查询、连接查询

本文概述了数据库表间关系的三种主要类型:一对多、多对多和一对一,并介绍了多表查询的分类与方法。一对多关系通过外键实现,多对多需借助中间表,而一对一关系则用于单表拆分优化。多表查询包括连接查询(内连接、外连接、自连接)、联合查询和子查询。内连接查询交集数据,外连接包含单边所有数据,自连接则实现表与自身的关联。联合查询合并结果集,子查询嵌套在SQL语句中,可分为标量、列、行和表子查询。文章通过具体案例和SQL语法展示了各类查询的实现方式,为数据库设计提供了实用指导。

m0_73849719的博客 920

sql中的多表查询

在SQL中,多表查询用于从多个表中组合数据,常见的方法包括 ​​ 和 ​。

m0_46322965的博客 2335

SQL多表连接查询

SQL多表连接查询(详细实例) 本文主要列举两张和三张表来讲述多表连接查询。 新建两张表: 表1:student 截图如下: 表2:course 截图如下: (此时这样建表只是为了演示连接SQL语句,当然实际开发中我们不会这样建表,实际开发中这两个表会有自己不同的主键。) 一、外连接 外连接可分为:左连接、右连接、完全外连接。 1、左连接 left join 或 left outer join SQL语句:select * from student left join cou...

舞小潮の涂粪墙 1455

常用的SQL多表连接查询

常用的多表查询 一、横向合并 添加到同一行中,列数增多 a表(id,name) b表(id,age) 1. 内联 方法一:用where(带条件)连接两表 select * from a,b where a.id = b.id 方法二:用inner join 表名 on(带条件)连接两表 select * from a inner join b on a.id = b.id 2. 左联 左联,顾名思义,以左表为主,右表为辅。 即左表的数据全部查出来,右表的数据拼上去。 (先把a表的

weixin_45936680的博客 1万+

【SQL】SQL多表查询

一对一关系,多用于单表拆分,将一张表的基础字段放在一张表中,其他详情字段放在另一张表中,以提升操作效率。建立第三张中间表,中间表至少包含两个外键,分别关联两方主键,使用。在任意一方加入外键,关联另外一方的主键,并且设置外键为唯一的。一个学生可以选修多门课程,一门课程也可以供多个学生选择。4. 增加唯一约束,保证外键创建成功。来维护二者之间的关联关系。用户 与 用户详情的关系。

qq_45280097的博客 1158

多表连接查询与子查询

多表连接查询和子查询 一、连接查询 1.1使用无连接规则连接两表 所谓无连接规则连接,就是指两个表的SELECT语句中不设置任何连接条件,这样的到的链接结果是第一个表的每一行都会和第二个表的所有行进行连接,即得到一个笛卡尔积。 SELECT * FROM STU_INFO,SCORE       1.2 使用有连接规则连接两表            有连接规则连接,其实就是在无连

牟尼的专栏 1万+

sql-多表查询

sql语句中的多表查询,笔记语法,及实战训练

m0_72739216的博客 1498

sql多表查询

在关系型数据库中,数据通常会被拆分到多个表中(规范化设计),以减少数据冗余。​:当多表有同名字段时,必须指定表名前缀。​(包括未分配部门和未参与项目的员工)。​:为表或字段设置别名(会产生大量冗余数据。

不辉放弃的博客 1688

SQL 多表查询

概念:指从多张表中查询数据重新建立dept和employee表最终的表结构-- 多表查询 笛卡尔积查询后实际出现了102条信息。笛卡尔积:笛卡尔积是指在数学中,两个集合A集合和B集合的所以组合情况。在查询多表时要去除无效的笛卡尔积-- 多表查询,去除笛卡尔积-- 将表名简写。

Barbara1314的博客 1280
上一篇: SQL的条件查询
下一篇: MySQL权限管理和MySQL备份
chen_note
博客等级 码龄1年 251粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值