2013-02-18 135 views
5

我使用蜂巢0.9.0,我想即蜂巢多个子查询

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

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

回答

6

多个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; 

请张贴您的确切代码,以便我可以给出相关解决方案。

+0

谢谢,Balaswamy!我已经用JOIN做了查询,就像在你的例子中一样 – 2013-02-19 14:12:23

1

支持连接子查询绝对。

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

正确的语法为SELECT * FROM

​​
+0

我假设......是为了“一些领域”的简写, – MikeKulls 2015-03-25 03:44:40

0

如果你想申请前得到充分的笛卡尔乘积的WHERE 条款,而不是:

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

你应该在中间使用“加入” ,即

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

以上是在严格模式下不可接受。