【发布时间】:2021-07-16 10:18:43
【问题描述】:
我试图运行一个使用 HIVE 内的多个连接的查询。
示例:
SELECT *
FROM table1
LEFT JOIN table2 -- the table resulted from the inner join should be left joined to table1
INNER JOIN table3 -- this inner join should happen first between table2 and table3
ON table3.id = table2.id
ON table2.id = table1.id
我认为这在其他 SQL DBMS 上完全有效,但 HIVE 给了我一个错误。这种连接(我真的不知道该怎么称呼它们,所以我不能用谷歌搜索它们)在 HIVE 中是非法的吗?
解决方法是一些子查询联合,但我更感兴趣的是获取有关这种语法的更多信息。
谢谢!
【问题讨论】:
-
它在任何数据库中都无效,每个
JOIN句子必须有它各自的ON子句。您需要在LEFT JOIN之后设置最后一个ON(ON table2.id = table1.id) 和table2 -
谢谢@habarnam,你最好研究一下这个链接,也许在你不需要创建这些问题之后
-
不要粗鲁,jaime,这个问题特别指的是 HIVE。您应该先研究该链接,然后再评论它在任何数据库中都无效
-
我不是无礼...我只是给了你一个回答你的问题,你只需看看我的评论,给一个链接,也许,你的问题的答案。如果您回答自己的问题,为什么还要问?...