继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

妞给爷乐一个
关注TA
已关注
手记 8
粉丝 4
获赞 151

上个星期我在前辈的项目中发现了一个有趣的事情:
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;后查的则是这个蓝框中的红框部分内的:
图片描述

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

打开App,阅读手记
4人推荐
发表评论
随时随地看视频慕课网APP

热门评论

....我 我我  我去...这sql直接读的意思就是这个啊.....为毛要画图....还画的好难看....

    总结的很好,我也遇到了类似的需求,我用的not in ,耗时太久了,用你这个思路快多了,

查看全部评论