前言
今天接到蚂蚁金服的电面,问了sql中过滤条件放在on和where中的区别,当时满脑子是inner join,觉得没区别啊。后来才想起来,连接查询除了inner join还有right join,left join。汗呐,当时还是太紧张了。这里做一下记录吧。
join过程可以这样理解:首先两个表做一个笛卡尔积,on后面的条件是对这个笛卡尔积做一个过滤形成一张临时表,如果没有where就直接返回结果,如果有where就对上一步的临时表再进行过滤。下面看实验:
先准备两张表:
先执行inner join:
select * from person p inner join account a on p.id=a.id and p.id!=4 and a.id!=4;
select * from person p inner join account a on p.id=a.id where p.id!=4 and a.id!=4;
结果没有区别,前者是先求笛卡尔积然后按照on后面的条件进行过滤,后者是先用on后面的条件过滤,再用where的条件过滤。
再看看左连接left join
select * from person p left join account a on p.id=a.id and p.id!=4 and a.id!=4;
这下看出来不对了,id为4的记录还在,这是由left join的特性决定的,使用left join时on后面的条件只对右表有效(可以看到右表的id=4的记录没了)
select * from person p left join account a on p.id=a.id where p.id!=4 and a.id!=4;
where的过滤作用就出来了。。。
右连接的原理是一样的。。
到这里就真相大白了inner join中on和where没区别,右连接和左连接就不一样了。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 世界启元招募系统教学 世界启元招募系统图文教学
- 雷安娜.1984-不再一样(复黑版)【宝丽金】【WAV】
- 丁当《敢爱敢当》2CD[WAV+CUE]
- 2001-S.H.E.《女生宿舍》FLAC+CUE
- 《龙腾世纪4》首个实机片段公布:随后还有长实机演示
- 舅舅爆料称PS大作将在明年陆续到来:第一方3A巨制
- 《使命召唤21》多人测试时间疑被泄露!为期5天
- 郑源《包容精选集》纯银版[WAV+CUE][690MB]
- 《DJ歌曲合集》[FLAC/分轨][44.4G]
- 群星《流行国风金曲》2CD母盘直刻版[WAV+CUE][1.5GB]
- 群星.2012-香江随想·顾嘉辉K2HD【新世纪】【WAV+CUE】
- 张克帆.1995-还记得我吗?【波丽佳音】【WAV+CUE】
- 百合二重唱.1994-10大冠军曲【吉马】【WAV+CUE】
- 世界启元沙盘推演青铜时代步骤攻略
- 世界启元狄多介绍 世界启元狄多怎么玩