我是靠谱客的博主 故意汽车,最近开发中收集的这篇文章主要介绍MySQL中 left join on 后的 and 条件与 where 中条件的区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

说明:left join on 后的 and 条件中 主表的条件不生效,从表的条件生效,并且从表先进行筛选后数据量可能变少,更便于与主表关联,有利于提高查询效率。

建议:主表的筛选条件放在 where 中,从表的 筛选条件放在 on 后的 and 中。

  • on条件是在生成临时表时使用的条件,它不管and中的条件是否为真,都会返回左边表中的所有记录。 所以说 and后 加 左表的条件对
    左表无影响。and后的条件只对右表产生影响 (right join翻过来)
  • where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left
    join的含义(必须返回左表的记录)了,条件不为真的就全部过滤掉。即对 join后的数据再进行过滤,过滤出只符合where后的条件。
  • 在匹配阶段 where子句的条件都不会被使用。仅在匹配阶段完成以后,wehre子句条件才会被使用。它将从匹配阶段产生的数据中检索过滤

总结:

  1. 当条件加在 left(right) join on之后,则只会影响右(左)边数据,不会影响左(右)表数据,不管条件是否成立,左(右))边数据都能正常返回;

  2. inner join and 和 inner join where and 其查询结果基本一致;

  3. 当条件加在full on之后,则会根据and之后的条件分别影响左表或右表数据;

  4. 当条件加在where 之后则表示对关联结果再进行筛选,此时的结果将会依赖于where后边条件的真假

最后

以上就是故意汽车为你收集整理的MySQL中 left join on 后的 and 条件与 where 中条件的区别的全部内容,希望文章能够帮你解决MySQL中 left join on 后的 and 条件与 where 中条件的区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部