join on后面 加条件 与 where后面加条件的区别

本文通过实例解析left join、inner join和full join中,on条件和where条件的应用区别,强调了on影响关联数据的一方,而where用于筛选结果。

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

今天看到有人提问,问join on后边加and和  where后边加and有什么区别,因此来做一个案例有助于理解。

首先准备数据,test1,test2数据如下:

 1、left join and和 left join where and

 

 

 

 由以上四组查询可以得出以下结论:

1、当条件加在join on之后,则只会影响右边数据,不会影响左表数据,不管条件是否成立,左边数据都能正常返回;

2、当条件加在where 之后则表示对关联结果再进行筛选,此时的结果将会依赖于where后边条件的真假

2、inner join and和 inner join where and

 

 

 由以上四组查询得出:inner join and 和 inner join where and 其查询结果基本一致

3、full join and 和 full join where and

 

 

 

 由以上查询可以得出:

1、当条件加在full on之后,则会根据and之后的条件分别影响左表或右表数据,

2、当条件加在where 之后则表示对关联结果再进行筛选,此时的结果将会依赖于where后边条件的真假。

总结:

1、当条件加在 left(right) join on之后,则只会影响右(左)边数据,不会影响左(右)表数据,不管条件是否成立,左(右))边数据都能正常返回;

2、inner join and 和 inner join where and 其查询结果基本一致;

3、当条件加在full on之后,则会根据and之后的条件分别影响左表或右表数据;

2、当条件加在where 之后则表示对关联结果再进行筛选,此时的结果将会依赖于where后边条件的真假

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心寒丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值