原文:SQL优化 查询语句中,用 inner join 作为过滤条件和用where作为过滤条件的区别

结论先行的话就是: 对于相对来说简单的SQL,Inner join的方式过滤和放在Where条件中过滤性能上来说是一样的, 但是对于复杂的SQL,有可能出现Inner join过滤出现性能问题的情况,此时可以尝试将条件放在where中做尝试,这个问题没有什么定论 前段时间遇到一个存储过程,参数之一是一个字符串,在存储过程中,把字符串拆分成一个临时表之后存为一个key值的临时表,作为其中一个查询条 ...

2017-08-02 13:46 0 2557 推荐指数:

查看详情

join语句中on条件where条件区别

大纲:on是在生成连接表的起作用,where是生成连接表之后对连接表再进行过滤     当使用left join时,无论on的条件是否满足,都会返回左表的所有记录,对于满足的条件的记录,两个表对应的记录会连接起来,对于不满足条件的记录,那右表字段全部是null;     当使用right ...

Fri Dec 15 23:38:00 CST 2017 0 2537
Hive SQL查询left join下on条件where条件区别

先给个结论: 总结:Hive SQL 中 LEFT JOIN 单独针对左表的过滤条件必须放在WHERE上,放在ON上的效果是不可预期的,单独针对右表的查询条件放在ON上是先过滤右表,再和左表联表,放在WHERE条件上则是先联表再过滤,语义上存在差别。 补充:对于MYSQL中的LEFT JOIN ...

Tue Mar 22 01:35:00 CST 2022 0 1149
sql语句中left joininner join中的on与where区别分析

关于SQL SERVER的表联接查询INNER JOIN 、LEFT JOIN和RIGHT JOIN,经常会用到ON和WHERE条件查询,以前用的时候有时是凭感觉的,总是没有搞清楚,今日亲自测试了下,理解到了一些内容,在此分享。 要测试,首先我们来创建三张表,数据库就根据自己的情况而定 创建 ...

Sat Apr 04 01:19:00 CST 2015 2 12844
SQL 查询条件放在LEFT OUTER JOIN 的ON语句后与放在WHERE中的区别

这两种条件放置的位置不同很容易让人造成混淆,以致经常查询出莫名其妙的结果出来,特别是副本的条件与主表不匹配时,下面以A,B表为例简单说下我的理解。 首先要明白的是: 跟在ON 后面的条件是对参与左联接的数据进行筛选,即在左联接之前起作用。 跟在WHERE后 ...

Sun Jan 01 00:29:00 CST 2017 0 2594
SQL 查询条件放在LEFT OUTER JOIN 的ON语句后与放在WHERE中的区别

这两种条件放置的位置不同很容易让人造成混淆,以致经常查询出莫名其妙的结果出来,特别是副本的条件与主表不匹配时,下面以A,B表为例简单说下我的理解。 首先要明白的是: 跟在ON 后面的条件是对参与左联接的数据进行筛选,即在左联接之前起作用。 跟在WHERE后的条件是对左联接得到的结果集进行筛选 ...

Wed Mar 12 19:32:00 CST 2014 1 6180
inner join on会过滤掉两边空值的条件

前两天工作过程中,遇到一个问题,关于join on查询的,对于查出来的结果一直都很疑惑,这里记录一下。 1.首先看下面这条sql查询语句查询出来的结果是25053 2.加个 o.lat = n.lat 的条件查询出来的结果是15586 3.现在我们将条件改成 o.lat ...

Tue Nov 26 23:46:00 CST 2019 0 517
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM