mysql的join

mysql的join方式

join是连接查询两个表的一种方式,会把两个表符合条件的行拼到一起形成一个新表并返回。
对于两个集合,join可以生成七种情况,如下。

在这里插入图片描述

下面分别对这七种情况介绍sql语句。

情况1

在这里插入图片描述

这种情况直接用inner join就可以。
select * from tableA A inner join tableB B on A.key = B.key;

情况2

在这里插入图片描述

直接left join。
select * from tableA A left join tableB B on A.key = B.key;

情况3

在这里插入图片描述

在情况2的基础上,去掉B的部分,所以只需要加一个条件 B.key is null 即可。
select * from tableA A left join tableB B on A.key = B.key where B.key is null;

情况4和情况5

下面两种和left join是对应的。
在这里插入图片描述

select * from tableA A right join tableB B on A.key = B.key;

在这里插入图片描述

select * from tableA A right join tableB B on A.key = B.key where B.key is null;

情况6

在这里插入图片描述

把left join和right join给union起来,union还会自动去重处理重合的部分。

select * from tableA A left join tableB B on A.key = B.key
union
select * from tableA A left join tableB B on A.key = B.key

情况7

在这里插入图片描述

在情况6下递推,用情况3和情况5连接。

select * from tableA A left join tableB B on A.key = B.key where B.key is null
union
select * from tableA A right join tableB B on A.key = B.key where B.key is null;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值