hive join on 条件 与 where 条件区别

Posted jiangxiaoxian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive join on 条件 与 where 条件区别相关的知识,希望对你有一定的参考价值。

1.  select * from a left join b on a.id = b.id and a.dt=20181115;

2.  select * from a left join b on a.id = b.id and b.dt=20181115;

3. select * from a join b on a.id = b.id and a.dt=20181115;

4. select * from a left join b on a.id = b.id  where a.dt=20181115;

sql1: 如果是left join 在on上写主表a的条件不会生效,全表扫描。
sql2: 如果是left join 在on上写副表b的条件会生效,但是语义与写到where 条件不同
sql3: 如果是inner join 在on上写主表a、副表b的条件都会生效
sql4: 建议这么写,大家写sql大部分的语义都是先过滤数据然后再join ,所以在不了解 join on + 条件的情况下,条件尽量别写道on 后,直接写到where厚就ok了。




以上是关于hive join on 条件 与 where 条件区别的主要内容,如果未能解决你的问题,请参考以下文章

left join on +多条件与where区别

mysql的inner join,left jion,right join,cross join以及on和where的区别

left join on和where

LEFT JOIN ON中加条件与在where中加条件的区别,高手请进来

SQL语句中 LEFT JOIN 后 ON 和 WHERE 的区别

SQL语句中 LEFT JOIN 后 ON 和 WHERE 的区别