Mysql学习笔记(8)—— 多表联结查询&组合查询

本文详细介绍了MySQL中的多表联结查询,包括内连接、左外连接、右连接和笛卡尔积,强调了养成在字段前加归属的习惯。同时,探讨了组合查询的目的和使用union进行纵向拼接的注意事项,如select列数需相等,并举例说明了union与union all的区别,指出union会去除重复项而union all不会。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多表联结查询

内连接
在这里插入图片描述
改别名
在这里插入图片描述
将每一个字段前面都加上归属,有助于后面做多表联结,养成好习惯
在这里插入图片描述
作者偏爱的格式,可借鉴
在这里插入图片描述
inner join 无空值
left outer join (left join)左外连接:左边表全部保留下来,左表为主表
right join:右表为主表
在这里插入图片描述
在这里插入图片描述

cross join 笛卡尔积
在这里插入图片描述
在这里插入图片描述

1 1
1 2
1 3
1 4
1 5
2 1
2 2
2 3
2 4
2 5

另外连接方式(过时连接方式,不推荐用)
在这里插入图片描述
组合查询目的(纵向拼接,类似于并集):
1.从不同的表select的内容拼到了一起
2.对一张表进行多个查询,但只按一个结果返回
在这里插入图片描述

要点一:使用union,select列数相等

在这里插入图片描述
错误1:
在这里插入图片描述在这里插入图片描述

错误2:id,name顺序不同
在这里插入图片描述
在这里插入图片描述
使用orderby:对所有查出来的内容再进行排序
正确:
在这里插入图片描述
错误:
在这里插入图片描述
在同一张表使用union和union all
union:
在这里插入图片描述
等价于:
在这里插入图片描述

union all:把两个东西拼在一起,不去重
在这里插入图片描述
在这里插入图片描述
多个表使用union和union all

在这里插入图片描述
在这里插入图片描述
只查询product_type
union过滤去重
在这里插入图片描述
在这里插入图片描述
一个union,一个union all?
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值