INSERT OVERWRITE TABLE out_2051
SELECT in_2051_0.column1,in_2051_0.column2,in_2051_1.column2,in_2051_1.column1
FROM in_2051_0
RIGHT OUTER JOIN in_2051_1 ON (in_2051_0.column2 = in_2051_1.column1)
LEFT OUTER JOIN in_2051_1 ON (in_2051_0.column2 = in_2051_1.column1)
;
FAILED:SemanticException [错误10008]:第5:16行不明确的表别名'in_2051_1'
这个错误是什么意思,我该如何解决?
答案 0 :(得分:0)
我可以发现左右外连接两个表格具有相同的列意味着" FULL OUTER JOIN"。
将SQL更改为
INSERT OVERWRITE TABLE out_2051
SELECT in_2051_0.column1,in_2051_0.column2,in_2051_1.column2,in_2051_1.column1
FROM in_2051_0
FULL OUTER JOIN in_2051_1 ON (in_2051_0.column2 = in_2051_1.column1)
我认为你的错误意味着最后的in_2051_1表格引用与第4行相同。
在第5行的ON条款中。 in_2051_1.column1含糊不清,hive不知道这个in_2051_1是正确的连接一个或左连接一个。您可以为in_2051_1提供一个别名,例如' in_2051_1_2'在第5行。
我认为FULL OUTER JOIN就是你想要的。