SQL中过滤条件放on和where中的区别有哪些
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,这篇文章主要介绍SQL中过滤条件放on和where中的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!join过程可以这样理解:首先两个表做一个笛卡尔积,on后面的条件
千家信息网最后更新 2025年11月11日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安全错误
数据库的锁怎样保障安全
网络安全团队工具包
新时代网络技术价格表格
万德金融数据库高校
中美执法及网络安全对话升级
期货云服务器
java软件开发机构
网络安全创作宣传画
网络安全事业部销售
手游服务器架设需要多少钱
数据库中成绩是什么类型
win7应用程序服务器
15项科技成果发布互联网大会
数据库学生表基本数据
网络安全遵循
送给软件开发公司的一段话
google地球数据库
网络安全的第三个时代
皖事通社保查询显示服务器异常
浅谈数据库范式
改数据库用户数据
怎么设域名服务器
四川手机软件开发大概要多少钱
意大利警察数据库
数据库如何显示表记录
杨浦区银联软件开发信息推荐
新疆西线网络技术有限公司
幼儿园网络安全课程教案
云南腾兴互联网科技有限公司
手柄服务器 安卓tv
数据库日志文件作用