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所说,简单的结合会很好