配置单元:使用相同的键联接多个表

时间:2019-02-22 08:41:31

标签: sql hive

我正在尝试在配置单元中联接具有公用密钥col

的多个表
create table merged_table as
select a.*,b.*,c.* from table1 a
join table 2 b
on a.col = b.col
join table3 c
on c.col = d.col

但这会产生以下错误:

  

失败:SemanticException [错误10036]:列名称重复:col

这些表有很多列。不用显式写查询中的列名,有什么方法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

您不能创建具有重复列名的表。虽然在SQL顶级SELECT语句中可能会产生模棱两可/重复的列名,但此类查询不能在CREATE TABLE AS SELECT中使用。您应该重命名每个单独的列名称,并可能在它们之前都加上源表名称:

create table merged_table as
select a.col1 as a_col1, a.col2 as a_col2, ..., b.col1 as b_col1, ...
from table1 a
join table2 b on a.col = b.col
join table3 c on b.col = c.col