所以我正在尝试将SQL删除查询转换为Hive。我正在使用hive .12版本,它不支持删除。
以下是SQL查询:
Delete from t1 c where exists(select 1 from t2 a where
a.emplid=c.employee_id and a.project_status='test')
现在我尝试使用NOT IN进行上述查询,但由于某些原因,我们无法在查询中使用NOT IN。
下面是我写的Hive查询,但我不确定它没有给出正确的结果。我对蜂巢很新。任何人都可以帮忙解决这个问题。
INSERT Overwrite table t1
select * from t1 c left outer join t2 a on (c.employee_id=a.employee_id)
where a.project_status= 'test'
and a.employee_id is null
答案 0 :(得分:2)
将project_status='test'
条件移至子查询或on
子句。另外,您应该只从表c
中选择列。
子查询中带过滤器的示例:
insert overwrite table t1
select c.*
from t1 c
left join (select employee_id
from t2
where project_status='test'
) a on (c.employee_id=a.employee_id)
where a.employee_id is null;
ON
中附加条件的示例:
insert overwrite table t1
select c.*
from t1 c
left join t2 a on (c.employee_id=a.employee_id and a.project_status='test')
where a.employee_id is null;