left join on where and 的所有用法

1.首先建立三张表
表a表a

表b在这里插入图片描述
表c在这里插入图片描述
首先看一个sql
SELECT * FROM a LEFT JOIN b ON a.id = b.id
LEFT JOIN c ON b.id =c.id
这个sql的结果如下
在这里插入图片描述
1.会显示a的所有信息
2.这个on 是对leftjoin的表的右侧的数据做了限制 , 比如你不满足这个on后面的条件 我就只显示null 比如我这里 b表就被做了限制, 只会显示和a表一样的
3.下一个on 又是对c表做了限制, 是b对c做的限制, 但是 其实b是有5的 而c也有, c应该把5显示出来 ,但是没有显示 ,说明 此时的b已经在第一个leftjoinon的
基础上被限制住了 , 因为我们最终是以a表为基础

接着往下看
在这里插入图片描述

最后是对表c做了限制, 你看只显示了id为4的

接着往下
在这里插入图片描述
这个sql 还是对表c做了限制 , 他只会显示a中test等于1的数据 并且他同时还要满足b.id=c.id的数据 两个同时满足 ,才会在c中做展示

接着看
在这里插入图片描述
这个数据 c中做了更多限制, 除了限制on的条件 还要限制两个and, 都是对表c做的限制
现在我们看另一种情况
在这里插入图片描述
上面的对比可以看出, where只显示符合要求的数据, 他是以a表为基础, 在以a表为基础的基础上, 最后把
SELECT * FROM a LEFT JOIN b ON a.id = b.id
LEFT JOIN c ON b.id =c.id
这个结果取成一个整体, 并且在这个整体中 把满足where条件的做显示, 这里只显示满足where条件的

最后看一个对比在这里插入图片描述
这个对比 就是说 , where后面的and 是对where后的数据 总体的 进一步去处理, 而右侧的 还是只是相对于表C来说的

这就基本上涵盖left join on where and 的所有用法了

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值