神奇的 SQL 之扑朔迷离 → ON 和 WHERE,好多细节

本文探讨了SQL中ON和WHERE子句的区别和执行顺序,通过多个实例分析了不同情况下它们的生效时机。在没有二级索引时,WHERE通常在ON之后生效;而当有二级索引时,ON的关联条件可能先于WHERE过滤条件执行。通过对LEFT JOIN和INNER JOIN的深入解析,揭示了ON和WHERE在不同场景下的工作原理。
摘要由CSDN通过智能技术生成

前言

神奇的 SQL 之 联表细节 → MySQL JOIN 的执行过程(一)中,我们讲到了 3 种联表算法:SNL、BNL 和 INL,了解了数据的查询方式是 one by one,联表方式也是 one by one ;并谈到了 ON 和 WHERE,对下图中所说的提出了质疑

认为 ON 和 WHERE 的生效时机有待商榷;此时楼主开始了欠大家的账

神奇的 SQL 之 联表细节 → MySQL JOIN 的执行过程(二)中对联表算法进行了补充,详细介绍了 MRR 和 BKA,但还是未介绍 ON 和 WHERE

SQL 执行顺序

SQL 的执行顺序相信大家多少有所了解,上网一搜也很快就能找到答案

除了 WITH 用的比较少之外,其他都比较常用,相信大家对上面的执行顺序也没有什么疑问;我们重点关注下 JOIN、ON 和 WHERE

那么 WHERE 是不是一定是

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值