Hive 0.13.0之前的IN clause中只能包含常量:
SELECT a.key,a.value
FROM a
WHERE a.key in (1,2,3)
Hive 0.13.0实现了IN子句中的uncorrelated subquery:
SELECT a.key, a.value
FROM a
WHERE a.key in (SELECT b.key FROM b)
当然,还可以这样写:
SELECT a.key, a.val
FROM a LEFT SEMI JOIN b ON (a.key = b.key)
Hive IN子句的correlated subquery依然没有实现。JIRA中的issue仍处于open状态。
另外,还有一个与IN子句相关的BUG,在刚开始使用IN子句的时候会让人摸不着头脑。
这个BUG在hive 1.2.0中才解决。
</