SQL语句中连接on条件和where条件的执行顺序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语句中连接on条件和where条件的执行顺序相关的知识,希望对你有一定的参考价值。
参考技术A 首先,来看下面的SQL查询语句我期望的结果是:表a的数据全部展示出来,然后,过滤掉不符合表b条件的结果。
但是,答案却出乎我的意料,所有数据都被过滤掉了,最终结果并不符合left join的语义,表a是主表,无论如何是应该展示出来的,但是并没有。
问题出在哪里呢?
这里牵扯到的是sql语句中on后的条件和where后的条件的执行顺序问题。
这里,有必要再次明确一下left join...on... 语法的准确含义。
有了上面的基础知识,就可以进一步去理解阐述了。
有时候,很简单的问题,却并不简单。回头看,还是对基础概念把握的不够明晰,有模糊的地方。
这里的on条件和where条件的作用是完全不同的。on条件不具备过滤作用,只做判断。而where条件不仅做判断,还要对结果进行过滤。
参考自: https://www.cnblogs.com/dancesir/p/7600265.html
以上是关于SQL语句中连接on条件和where条件的执行顺序的主要内容,如果未能解决你的问题,请参考以下文章
sql中where的与jnner join on的连接条件.哪个优先级别高?