hive获取非现有和现有数据的列表

时间:2017-10-23 23:50:15

标签: hive impala

两张桌子:

Reg                      Global
ID | uom                 ID  | uom    
------------------           ----------------
1  | kg                   1  | kg
1  | gm                   1  | gm
1  | ml                   3  | pl
3  | pl     

期望的输出:

ID | reg    | glob   
------------------  
1  | kg      | kg
1  | gm      | gm
1  | ml      | null
3  | pl      | pl 

查询已尝试:

SELECT reg.id,  reg.UOM  ,glob.uom
FROM reg
LEFT JOIN global glob
ON reg.id=reg.id  and reg.uom = glob.uom
WHERE  glob.uom is null and reg.id =1

输出:

reg.id | reg.uom | glob.uom 
1      | ml      | null

提前致谢。

1 个答案:

答案 0 :(得分:0)

删除where子句。只需左外连接即可获得结果

select Reg.ID, Reg.uom as reg, Global.uom as glob
from Reg
left outer join Global on Reg.ID = Global.ID and Reg.uom = Global.uom