【发布时间】:2020-04-05 15:35:10
【问题描述】:
我有多个表格,格式如下:
表用户 -
ID lang
1 EN
2 EN
3 DE
表 A -
ID event1 event2
1 5 1
2 null 1
3 11 null
表 B -
ID event1 event10
1 2 1
3 2 null
所以在连接/加入 ID 列上的表格后,我的最终表格将如下所示:
final_table -
ID lang A_event1 A_event2 B_event1 B_event10
1 EN 5 1 2 1
2 EN null 1 null null
3 DE 11 null 2 null
所以我在这里有多个问题,首先如何正确地进行连接,以便别名匹配表名并具有最终唯一的列名,即使事件在列内具有相同的命名,我也想要所有缺失的值也会有空值(比如没有用户 ID = 2 的表 B)。
到目前为止,我的尝试并不成功,因为列名会在没有唯一 ID 的情况下重复,并且缺少的值没有正确填充空值。
我已经尝试过的示例:
select t1.*, t2.*, t3.*
from users t1
left join
A t2
using (ID)
left join
B t3
using (ID)
我可以以编程方式构造查询以提供灵活性,但我想知道这种情况的正确语法。
谢谢。
【问题讨论】:
-
您的语法看起来不错,只是您应该在
select中明确列出列。
标签: sql hive hiveql presto amazon-athena