hive表关联条件不⽀持不等值连接
hive表关联条件不⽀持不等值连接
不等式:(>=,>,<=,<,<>,between..and)
场景:oracle⾥⾯的SQL转化成hiveSQL中,关联时ON⾥⾯的条件如果含有不等值,那么在hive中不能直接使⽤,如果将不等式放在where条件中,造成下⾯描述问题:
直接将不等值连接放在where条件中会过滤掉主表的部分数据,
解决⽅案:
需要先通过inner join 加上⾮等值条件 再left join
⽰例图:
sql left join 多表连接--按照正常思路直接放在where下⾯(错误)
select t.id,t.date,t1.date
from t
lfet join t1 on t1.id=t1.id
and t.date>t1.date
--正却写法
select t.id,t.date,t2.date
from t
lfet join
(select t.id,t1,date
from t
inner join t1 on t1.id=t1.id
where t1.date>t1.date) t2
on t.id=t2.id
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论