Error:SemanticException [Error 10249]: Line 1:146 Unsupported SubQuery Expression 'userid': Correlating expression cannot contain unqualified column references.
hive查询中,这个异常想必大家经常会遇到,在hive中,in、not in 是不支持子查询的,今天来看看替代的方法
先说说需求场景
我们模拟的需求,从A表查询的时候,需要在结果中过滤掉B表中的userid。
上sql
select DISTINCT userid FROM TABLE_A AS a WHERE a.dt >= '20200209' AND a.userid
NOT IN (SELECT DISTINCT userid FROM TABLE_B AS b WHERE b.dt >= '20200209');
这是我们的正常逻辑,使用not in 过滤掉b表中的userid。但是hive目前,in、not in 是不支持子查询的,就会报我们开始提到的那个错误:
Error:SemanticException [Error 10249]: Line 1:146 Unsupported SubQuery