问个复合查询的问题

qq_40164181 2018-03-26 10:30:48
刚入行没多久,我发现很多同事的sql 写的关联查询都是 基本的 on a.id = b.id 就开始where了
但是后来知道了 on的执行是比较优先的,所以把where 内的 过滤都扔 on 上了 , 最近看书才知道原来这叫复合查询

所以有个问题:
on 是不是和 where 一样的写法? 过滤数据量大的放前面 。
还有 我觉得on 完全可以代替where 了 ,现在我一用到关联查询,基本 where 里面都没有东西了 ,不知道是不是走歪了
来求证一下观点。。。
...全文
533 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_40164181 2018-04-08
  • 打赏
  • 举报
回复
顶顶。。。。。
zjcxc 2018-03-28
  • 打赏
  • 举报
回复
on 有 left /right /inner join ,left / right 的情况和 where 是有区别的的 两表用 where 和 on 在阅读上没什么区别,但多表的情况,on 比 where 列清晰,更容易看出表之间的关系 至于 on 优先的说法,通常是不存在的,你可以通过 explain 查看执行计划来对比两种写法
qq_40164181 2018-03-28
  • 打赏
  • 举报
回复
引用 2楼zjcxc--个人微信公共号同名 的回复:
on 有 left /right /inner join ,left / right 的情况和 where 是有区别的的 两表用 where 和 on 在阅读上没什么区别,但多表的情况,on 比 where 列清晰,更容易看出表之间的关系 至于 on 优先的说法,通常是不存在的,你可以通过 explain 查看执行计划来对比两种写法
on不就是将2张以上表连接成一张临时表,然后在通过where过滤出最后结果吗?
qq_40164181 2018-03-27
  • 打赏
  • 举报
回复
顶顶!!!!!!!!!!!!!!!!!!!!1

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧