我有以下Hive查询:
select *
from A
left outer join B
on A.ID = B.ID
where B.ID IS NULL
结果会产生重复数据,但我只需要非重复记录。
经过一番研究,我尝试了以下查询:
select *
from (
select *
from A
left outer join on B
where A.ID = B.ID AND B.ID IS NULL ) join_result
group by jojn_result.ID
它显示了一个模糊的列引用ID错误。
我没有表A的列名。
请帮我确定解决方案。
谢谢。
答案 0 :(得分:1)
Select A.*
from A left outer join
B
on A.ID = B.ID
where B.ID IS NULL;
:怎么样?
B
我删除了protected
列,因为它们不需要。
答案 1 :(得分:0)
您的一个连接列可能具有NULL
值。只要任何联接键值中有NULL
,它就会跳过该列。使用NULL
或NVL
加入时,尝试用一些默认值替换COALESCE
。我在寻找相同的答案,并在这里看到了您的帖子。但是没有解决方案。但是,因为我找到了解决方案,所以我只想在这里发布内容,以便某人可以受益。
select *
from A
left outer join B
on coalesce(A.ID,000) = coalesce(B.ID,000)
where B.ID IS NULL