在Hive
中,以下查询失败:
Select a,b,c from t1 where a in (0,100) AND b in (select b from t2
where d>2 GROUP BY 1 ) LIMIT 1;
架构:
t1(a,b,c)
t2(b,d,e)
错误日志:
不支持的子查询表达' b':关联表达式不能 包含不合格的列引用。
什么是关联表达?什么是不合格的列引用?你可以在这里概括错误..
答案 0 :(得分:16)
您可以找到具有相同问题的人here和相应的JIRA ticket。
基于这些答案,我建议你试试:
Select a,b,c from t1 where a in (0,100) AND t1.b in (select b from t2
where d>2 GROUP BY 1 ) LIMIT 1;
答案 1 :(得分:3)
这是因为两个查询中都有b
,主要查询和内部查询都位于in
语句中。要解决此问题,您必须明确告诉hive您要引用的b
。因此,将其更改为t1.b
即可解决问题。