amazonathena-从多个表中选择,无需联接



我有三个表。每个表和另外两个表有共同的列,但在某些属性上有所不同。由于我对公共属性感兴趣,所以我想发出一个请求,从所有三个表中获取数据。

我需要通过UNION从所有三个表中获取项目。在AWS Athena中有可能吗?

例如:

table1 (att1, att2, att3)
table2 (att1, att2, att_3)
table3 (att1, att2, att3, att4)

目标:从表1、表2和表3中获取项目,但不加入同一请求。

这将返回三个表(包括table3的第四列(的列中的所有值。如果您只需要att1, att2,请忽略其他列,并在SELECT语句中只键入这些值。

SELECT att1, att2, att3, NULL as att4 FROM table1
UNION ALL
SELECT att1, att2, att_3, NULL FROM table2
UNION ALL
SELECT att1, att2, att3, att4 FROM table3

如果有来自不同表的重复值,则UNION ALL返回重复值,而UNION应用DISTINCT,这意味着返回唯一的值集。

如果你正在寻找一个从你提到的所有表中返回公共列(按名称(的解决方案,那么你可以选择:

  1. 按照上面的方式执行,这意味着明确指定
  2. 您必须编写一个过程来执行动态语句,该语句将在给定的表中查找匹配的列

在AWS Athena中,可以使用UNION运算符合并两个(或多个(独立查询表达式的结果。例如:

SELECT att1, att2, att3 FROM table1
UNION
SELECT att1, att2, att3 FROM table2
UNION
SELECT att1, att2, att3 FROM table3

我假设UNION中的每个SELECT语句都有相同数量的列,具有相同顺序的相同数据类型。

相关内容

  • 没有找到相关文章

最新更新