HQL中join、 inner join、left join、left outer join、left semi join 、right join 、right outer join

本文详细解析了Hive SQL中的各种Join操作,包括inner join、left join、right join及其简化写法,阐述了它们之间的主要区别,并对比了left outer join与left semi join的特点和应用场景。

概念:

(1)hive中的join就是inner join内连接,也称为等值连接,join是inner join的简写。

(2)hive中的left outer join 就是左连接left join,left join 是left outer join的简写。

(3)hive中的right outer join 就是右连接right join,right join 是right outer join的简写。

区别:

(1)left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录,如果右表的字段不存在则用null表示。

(2)right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录,如果左表的字段不存在则用null表示。

(3)join(等值连接) 只返回两个表中联结字段相等的行。

面试常问:

left outer join和left semi join的区别:
(1)两者都是以左表为准,连接右表,连接不上的用null替代。
(2)不同点:
1)left out join 可以查询左右表的所有信息,而left semi join 只能查出左表信息。
2)left semi join 比left outer join更加高效。
3)场景应用上有不同,由于hive 不支持exists in,semi join 可以用于解决exists in的场景,比outer join高效。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值