hive的巧用:查询两个表中不一样的数据

https://www.imooc.com/article/17676

2017.04.24 14:27 4691浏览

 字号

上个星期我在前辈的项目中发现了一个有趣的事情:
select a.* FROM A a left outer join B b on a.qq = b.qq
WHERE b.qq is null;
恩,很好。
WHERE b.qq is null;
.........
??
尼玛,你这不是查空得吗,查空的是干毛用啊?然后我就查前辈在数据库中存的sql语句,看看他是不是给我发错了。
查完之后我就嘿嘿了。前辈是谁啊,牛人大神啊,怎么可能会写错,然后我就问啊,这是什么意思啊,前辈说这是查A有B没有的数据。
什么意思呢?我也是想了好久才想明白,下面我来给大家说明一下,有错误建议指出~~
首先,我们先来看一下left join后是什么样的结果。我画了一张图,还请不要嫌弃。

现在又A\B两张表,用left join 关联后就会变成这样:

而在WHERE b.qq is null;后查的则是这个蓝框中的红框部分内的:

大家有没有了解呢~~~
如果有错误欢迎纠正,欢迎补充~~~

你可能感兴趣的:(Hive)