如何在Hive中对INEQUALITY条件进行LEFT连接

时间:2015-07-29 10:33:41

标签: sql hive left-join

我需要在

上实现左连接

TABLE A: id(1,2,3); value(A,B,C)
TABLE B: id(2,3); value(E,F)

并写一个给我的联接,

TABLE C: A.id(1,2,3); B.id(NULL,NULL,2); A.value(A,B,C); B.value(NULL,NULL,E)

1 个答案:

答案 0 :(得分:0)

如果您的数据是这样的:

id  val
1    A
2    B
3    C

和这个

id val
2  E
3  F

你想要

id  val1  id2  Val2
1    A    null null
2    B    2     E
3    C    null null

然后:

select a.id as aid, a.val as aval, b.id as bid, b.val as bval
from table1 a
 left outer join
 table2 b
 on a.id = b.id
 where b.id = 2;

当然你的条件是b.val = E或其他什么,但你不清楚。

您也可以这样做:

select a.*, b.val as bval
from table1 a
left outer join
(Select * from table2 where id = 2) b
on a.id=bid;

然后你不携带可能没有其他信息的额外ID。您也可以在其他方面调整表格。再次不确定它是否正是你所需要的,但祝你好运。