概念:
(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高效。
本文详细解析了Hive SQL中的各种Join操作,包括inner join、left join、right join及其简化写法,阐述了它们之间的主要区别,并对比了left outer join与left semi join的特点和应用场景。
991

被折叠的 条评论
为什么被折叠?



