SQL中的on条件与where条件有什么区别

发布时间:2021-08-31 11:26:40 作者:chen
来源:亿速云 阅读:101

本篇内容主要讲解“SQL中的on条件与where条件有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL中的on条件与where条件有什么区别”吧!

在使用leftjoin时,on和where条件的区别如下:

  1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。

  2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有leftjoin的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。

  假设有两张表:

  表1:tab1

  idsize

  110

  220

  330

  表2:tab2

  sizename

  10AAA

  20BBB

  20CCC

两条SQL:

  1、select*fromtab1leftjointab2ontab1.size=tab2.sizewheretab2.name='AAA'

  2、select*fromtab1leftjointab2ontab1.size=tab2.sizeandtab2.name='AAA'

第一条SQL的过程:

  1、中间表

  on条件:

  tab1.size=tab2.size

  tab1.idtab1.sizetab2.sizetab2.name

  11010AAA

  22020BBB

  22020CCC

  330(null)(null)

  2、再对中间表过滤

  where条件:

  tab2.name='AAA'

  tab1.idtab1.sizetab2.sizetab2.name

  11010AAA

第二条SQL的过程:

  1、中间表

  on条件:

  tab1.size=tab2.sizeandtab2.name='AAA'

  (条件不为真也会返回左表中的记录)tab1.idtab1.sizetab2.sizetab2.name

  11010AAA

  220(null)(null)

  330(null)(null)

  其实以上结果的关键原因就是leftjoin,rightjoin,fulljoin的特殊性。

  不管on上的条件是否为真都会返回left或right表中的记录,full则具有left和right的特性的并集。

  而innerjion没这个特殊性,则条件放在on中和where中,返回的结果集是相同的。

到此,相信大家对“SQL中的on条件与where条件有什么区别”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. SQL的执行流程和WHERE条件的提取与应用
  2. sql中的left join及on、where条件关键字的区别详解

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

sql

上一篇:如何解决PHP使用Memcache时模拟命名空间及缓存失效的问题

下一篇:C语言指针是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》