HiveQL - 链接三个表v2

时间:2016-02-15 17:10:52

标签: sql hive hiveql

我有三个表,每个表包含" ID"。最终结果应该将表A中的ID_1链接到表C中的ID_4。什么查询会返回ID_1到ID_4的所有组合?

CREATE TABLE TABLE_A AS (ID_1 STRING, ID_2 STRING );

CREATE TABLE TABLE_B AS (ID_2 STRING, ID_3 STRING );

CREATE TABLE TABLE_C AS (ID_3 STRING, ID_4 STRING );

Table_A中的ID_2与Table_B中的ID_2相同。 其中表_B中的ID_3与表_C中的ID_3相同。 每个表中ID之间的大多数关系都是1:1,但是有一些边缘情况很多:很多。

什么查询会产生以下组合的所有可能性?

ID_1 to ID_1
ID_1 to ID_4
ID_4 to ID_4

ID_1 to ID_1与两个不同的ID_1到一个不同的ID_2的情况。

ID_4 to ID_4是一个不同的ID_3到两个不同的ID_4的情况。

1 个答案:

答案 0 :(得分:1)

正确的语法使用显式连接:

SELECT a.ID_1, c.ID_4
FROM TABLE_A a JOIN
     TABLE_B b
     ON a.ID_2 = b.ID_2 JOIN
     TABLE_C c
     ON b.ID_3 = c.ID_3;

也就是说,这在功能上等同于您的查询。