select * from students1;
students1.name students1.age students1.gpa
fred 35 1.28
barney 32 2.32
shyam 32 2.32
select * from students2;
students1.name students1.age
fred 35
barney 32
运行此查询时
select
name,age from students1
where not exists
(select name,age from students2);
我遇到了以下错误
编译语句时出错:失败:SemanticException行39:22 SubQuery sq_1的定义中的SubQuery表达式“ age”无效 在第3:10行用作sq_1的存在(从学生2中选择姓名,年龄): 对于“存在/不存在”运算符,SubQuery必须相关。
答案 0 :(得分:1)
错误消息已清除。使用exists
/ not exists
时,子查询应该是相关的。
select name,age
from students1 s1
where not exists (select 1
from students2 s2
where s1.name=s2.name and s1.age=s2.age
)
答案 1 :(得分:0)
您正在尝试实现查询的MINUS
输出。不幸的是,它在Hive中不可用。
您可以在此处阅读HQL和SQL的限制。 HQL vs SQL
对于不存在的用法,本手册提供了很好的示例。 subqueries in hive