Join 配置单元:如何连接两个表,以使两列中的所有条目都位于最终表中?

Join 配置单元:如何连接两个表,以使两列中的所有条目都位于最终表中?,join,merge,hive,hiveql,Join,Merge,Hive,Hiveql,我在蜂箱里有两张桌子 t1: prod | rev ------------- A | 1 A | 2 B | 1 B | 2 D | 1 t2: prod | rev ------------- A | 1 A | 2 B | 1 B | 2 C | 1 C | 2 我希望将它们连接在一起,以便所有produdct(prod)和修订版(rev)都位于最终的表中,例如 t3: prod | rev ------------- A | 1 A

我在蜂箱里有两张桌子

t1:
prod | rev
-------------
A |   1
A |   2
B |   1
B |   2
D |   1


t2:
prod | rev
-------------
A |   1
A |   2
B |   1
B |   2
C |   1
C |   2
我希望将它们连接在一起,以便所有produdct(prod)和修订版(rev)都位于最终的表中,例如

t3:
prod | rev
-------------
A |   1
A |   2
B |   1
B |   2
C |   1
C |   2
D |   1
我已经试过了,但对HQL还不够熟悉,无法理解如何正确地完成它


我相信,也许先左派加入,然后联合,然后右派加入,会奏效。并在联合后使用WHERE语句删除重复项,但我无法编写有效的查询。希望您能在这方面提供帮助。

A
union
应该可以

select * from t1
union
select * from t2;

您可以尝试使用UNION DISTINCT消除输出中的重复项

select * from t1
UNION DISTINCT
select * from t2

您可以找到许多与此相关的查询。你需要搜索一个比特,一个简单的
UNION
就足够了。您不需要
UNION ALL
,因为这样会产生重复项。“左连接然后UNION ALL然后右连接”-这是完全连接所做的,您需要在它之后删除重复项。但正如@Nick所说,简单的结合会很好