一张表左关联另外两张表,三表关联

三表连接经常做的都是两两之间关联,尝试了一下两张表同时关联到一张表,结果和预期想的一样,当主表t1关联第二表t2时,t2中不存在与t1的code相等的情况下为null,在t1再关联t3时,t3中不存在与t1的code相等的情况下为null

下面是左关联的情况
select a.,b.,c.*
from t1 a left join t2 b on a.alarm_code=b.alarm_code
left join t3 c on a.alarm_code=c.alarm_code在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面是直接相等来做链接的情况
select a.,b.,c.* from t1 a , t2 b, t3 c where a.alarm_code=b.alarm_code and a.alarm_code=c.alarm_code
结果大不相同
在这里插入图片描述
原因是直接相等的情况是只查询出两个表where字段相等的记录,
当只关联t1和t2时
select a.,b. from t1 a , t2 b where a.alarm_code=b.alarm_code
在这里插入图片描述
在这个结果基础上,可以把这个结果看成另外生成的t1表,再去链接t3时
select a.,b.,c.*
from t1 a , t2 b, t3 c
where a.alarm_code=b.alarm_code and a.alarm_code=c.alarm_code
在t1和t3相等的记录仅剩下2,因为code3并不在后来生成的t1表中
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值