码迷,mamicode.com
首页 > 其他好文 > 详细

hive join on 条件 与 where 条件区别

时间:2018-11-15 22:35:41      阅读:487      评论:0      收藏:0      [点我收藏+]

标签:where   and   from   sql   过滤   语义   了解   不同   HERE   

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 条件区别

标签:where   and   from   sql   过滤   语义   了解   不同   HERE   

原文地址:https://www.cnblogs.com/jiangxiaoxian/p/9965978.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!