我试图理解为什么以下子查询将在Impala而不是Hive中工作。
select * from MySchema.MyTable where identifier not in
(select identifier from schema.table where status_code in (1,2,3));
编辑:
添加了错误
编译语句时出错:FAILED:SemanticException [错误10249]:行1:55不支持的子查询表达式“标识符”:关联表达式不能包含非限定列引用。
问题可能是因为主查询和内部子查询中的两个查询中都存在“标识符”。明确提到您所指的“标识符”如'mytable.identifier'应该可以解决此问题。
这可能是Hive的一个问题,已在最近的版本中得到修复,并且问题未在hive 3.1.0中重现。
如果您仍然遇到此问题,请告诉我们您正在使用的hive版本以及用于创建表的DDL语句。