SQL中过滤条件放on和where中的区别有哪些
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍SQL中过滤条件放on和where中的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!join过程可以这样理解:首先两个表做一个笛卡尔积,on后面的条件
千家信息网最后更新 2026年11月02日SQL中过滤条件放on和where中的区别有哪些
这篇文章主要介绍SQL中过滤条件放on和where中的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
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没区别,右连接和左连接就不一样了。
以上是"SQL中过滤条件放on和where中的区别有哪些"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
条件
笛卡尔
内容
篇文章
结果
不对
有效
真相大白
两个
价值
作用
兴趣
原理
大白
小伙
小伙伴
是由
更多
特性
真相
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
什么是科技互联网
互联网下的科技发展
网络科技有限互联网
深圳互联网科技公司
互联网的科技创新
互联网科技媒体
迪茉互联网科技
美国互联网黑科技
居家互联网科技有限公司
太原新华互联网科技学校怎么样
随着互联网科技发展
栖莱科技互联网股份有限公司
搜狐科技互联网
互联网科技创新的路径
长沙互联网科技
互联网科技资金流入
有人说阿里系是互联网科技企业
易企秀互联网科技是做什么的
云鲸互联网络科技有限公司
西安左小互联网科技有限公司
小米移动互联网科技园
华服互联网科技怎么样
重生之互联网科技帝国
互联网科技公司税收优惠
成都互联网科技公司
深圳艾佳互联网科技
晓花互联网科技有限公司网址
996高科技互联网公司
2021世界互联网领先科技成果发布
现代科技的标志之一的互联网