配置单元中的子查询-获取错误“只允许作为顶级连接的子查询表达式”

yhqotfr8  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(502)

尝试在配置单元中使用如下所示的子查询运行此查询:

select y,m,d,h from A
where d not in (select d from B)

我得到一个错误 "only subquery expressions that are top level conjuncts are allowed" 有人知道这意味着什么,以及如何绕过它吗?
提前谢谢!

irtuqstp

irtuqstp1#

我假设您使用的是<0.13的配置单元版本。有些子查询表达式是不允许的,这就是其中之一。改为尝试左外连接:

SELECT A.y, A.m, A.d, A.h
FROM A
LEFT OUTER JOIN B ON A.d = B.d
WHERE B.d IS NULL;

如果您移动到Hive0.13,您应该可以这样使用它:

SELECT A.y, A.m, A.d, A.h FROM A WHERE A.d NOT IN (SELECT d FROM B);

相关问题