SQL中过滤条件放on和where中的区别有哪些
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,这篇文章主要介绍SQL中过滤条件放on和where中的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!join过程可以这样理解:首先两个表做一个笛卡尔积,on后面的条件
千家信息网最后更新 2025年01月22日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安全错误
数据库的锁怎样保障安全
天津网络安全大赛俱乐部
欧洲基因组数据库
obp 软件开发
软件开发风潮是什么原因
数据库怎么看有多少张数据库
pubg切换服务器段位
如何查看域名绑定服务器哪个目录
什么是数据库中存储过程
电子商务数据库技术复习
刘昊然百度数据库
xbox链接不到服务器怎么办
查询数据库中某个字段在哪个表
公众号注册服务器发送请求
影响黄金的美国数据库
软件开发 培训班
网络安全有没有必要考研
修改网址要更换服务器吗
苏州回收惠普服务器内存条
数据库 位图索引
我的世界服务器战桥
高度重视网络安全教育
4卡服务器
河北弘曦互联网科技
辅助数据库无法访问
中国网络技术自学网
希网网络安全教育
大学生网络安全需要什么证书
计算机网络技术论文40页
开发服务器安全组
深圳正规软件开发价格