关于hive中not in不支持子查询的解决方法

喜你入骨 提交于 2020-08-06 23:31:40

表信息:

用户User表(userid,name)

在这里插入图片描述

黑名单BanUser表(userid,name)

在这里插入图片描述

问题:

找出不在黑名单中的用户信息(userid,name)

hive暂时不支持以下查询方式:

select aa.* from user aa where aa.user not in (select a.userid from banuser a);

方法一:使用not exists进行改写

select aa.* from user aa

  where not exists (select a.userid from banuser a where a.userid=aa.userid);

在这里插入图片描述

方法二:使用left join进行改写

select a.userid,a.name

from user a left join banuser b on a.userid=b.userid

where b.userid is null; 

在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!