2016-11-08 59 views
0

蜂巢中有2个表。表2是一张拥有数十亿记录的主表。蜂巢搜索2列存在于第二个表中的单列中

表1

name| id1 | id2 
jac | 1 | 2 
rac | 3 | 1 

表2

class | id 
first | 1 
second| 3 

我怎么能写在蜂巢高效的查询来搜索,从表中都ID1和ID2 1存在于表2和隔离这些记录?

感谢 毫秒

回答

0

大概JOIN是最好的方法:

select t1.* 
from table1 t1 join 
    table2 t2a 
    on t1.id1 = t2a.id join 
    table2 t2b 
    on t1.id2 = t2b.id; 

在其他的数据库,EXISTSIN可能会更好,尤其是索引。我的猜测是,一个简单的JOIN在Hive中效果最佳。