Hive多个子查询

时间:2013-02-18 11:23:04

标签: subquery hive

我正在使用Hive 0.9.0而我正在尝试执行查询,即

`SELECT a.id, b.user FROM (SELECT...FROM a_table) a, (SELECT...FROM b_table) b WHERE a.date   = b.date;`

但它返回错误“loop(...)+与输入不匹配....”。 Hive是否像Oracle DB一样支持FROM中的多个子查询?

3 个答案:

答案 0 :(得分:7)

hive允许多个subqueries

我使用下面的代码进行测试,它可以正常工作。

    select * from (select id from test where id>10) a 
join (select id from test where id>20) b on a.id=b.id;

请发布您的确切代码,以便我提供相关解决方案。

答案 1 :(得分:1)

绝对支持

加入子查询。

我认为关键问题是你使用SELECT...FROM

正确的语法是SELECT * FROM

SELECT a.id, b.user 
FROM 
(SELECT * FROM a_table) a 
JOIN (SELECT * FROM b_table) b ON a.date = b.date;

答案 2 :(得分:0)

如果要在应用WHERE之前获取完整的笛卡尔积 条款,而不是:

SELECT a.id, b.user FROM (SELECT...FROM a_table) a, (SELECT...FROM b_table) b WHERE a.date   = b.date;

你应该在中间使用'join',即

SELECT a.id, b.user FROM (SELECT...FROM a_table) a join (SELECT...FROM b_table) b WHERE a.date   = b.date;
在严格模式下,

不允许使用