sql的join和where有什么区别


小编给大家分享一下sql的join和where有什开发云主机域名么区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!join关键字的作用是将多个表按一定的条件联合起来,从而可以实现从多个表中获取数据推荐课程:MySQL教程。在join后面可以接on条件和where条件,在这里我主要就是说这两者之间的差别建立两张简单的用来测试的表并添加数据,如下所示,一张表名为id_name,另一张表名为id_age首先看看不添加条件——t2.age =’22’时的结果得到1、在这里以left join为例,首先运行where加条件——t2.age =’22’时得到结果如下可以得到where条件是在left join操作完成后所进行的条件筛选2、当运行on加条件——t2.age =’22’时得到结果如下可得到on条件是在left join之前先进行条件筛选,而后才对两个表格join操作在这里是以left join为例,对于inner join来说由于其性质,这两种条件得到的结果会是一样,但中间内部过程还是有差异的on比where起作用更早,,先根据on条件进行多表的连接操作,生成一个临时表再通过where来筛选那 on 和where 那个更高效呢

如果是inner join, 放on和放where产生的结果一样, 但没说哪个效率速度更高? 如果有outer join (left or right), 就有区别了, 因为on生效在先, 已经提前过滤了一部分数据, 而where生效在后.综合一下, 感觉还是放在on里更有效率, 因为它先于where执行.
先笛卡尔积, 然后再on过滤, 如果join是inner的, 就继续往下走, 如果join 是left join, 就把on过滤掉的左主表中的数据再添加回来; 然后再执行where里的过滤;on中不是最终过滤, 因为后面left join还可能添加回来, 而where才是最终过滤.只有当使用外连接(left, right)时, on 和 where 才有这个区别, 如果用inner join, 在哪里制定都一样, 因为on 之后就是where, 中间没有其它步骤.以上是sql的join和where有什么区别的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注开发云行业资讯频道!

相关推荐: mysql中有哪些常用的内置函数

本文主要给大家简单讲讲mysql中有哪些常用的内置函数,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望mysql中有哪些常用的内置函数这篇文章可以给大家带来一些实际帮助。 COUNT()函数:对于除了(*)之外的…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/10 13:15
下一篇 06/10 13:15

相关推荐