文章图片
各种连接之间的关系:
Hive编程是整个数据仓库运营的核心,各种业务之间的连接是Hive的核心,所以可以理解掌握Hive中的各种连接是数据仓库开发工程师必备的技能。
注意:
hive中的Join只支持等价连接,也就是说,join on中on上的表之间的连接条件只能是=,不能是等号。此外,上的equijoin只能是和,不能是或。
1 .内部连接
内部联接,它将只保留两个联接表中满足联接条件的数据,并返回两个表中存在的信息
内部连接是最常见的连接类型,称为普通连接,而E.FCodd最初称为自然连接。
内部可以省略。
内部联接= =联接等同于早期的联接语法
通俗理解:返回两个表中的信息;
2 .左连接
左外连接,其中outer也可以省略,左外连接是一个早期的词。
列表连接B基于表A中的记录,A可以看作左表,B可以看作右表,列表连接基于左表。
这意味着将显示左表中的所有记录,而右表将仅显示满足搜索条件的记录,例如on和where条件。
表b中缺少的记录为空。
列表连接B相当于B右连接a。
通俗理解:前一个表作为主表与其他表关联,返回的记录数与主表相同,不能关联的字段为NULL
3 .右连接
同样,与左连接相反,A右连接B将显示表B中的所有记录,表A不足以填充null
同样,右外连接= righr连接,也可以省略outer。
通俗理解:后表为主表,前表关联。返回的记录数与主表相同,不能关联的字段为空;
4 .完全外部连接
相当于完全连接,完全外部连接
包含左表和右表的所有行,而不管其他表中是否有匹配的行。
在功能上,它相当于两个数据集的左外连接和右连接,然后消除了重复行的并行操作,将上述两个结果集组合成一个结果集。
未关联字段为空;
注意:Hive不使用mapjoin来优化完全连接;
通俗理解:返回两个表记录的并集,不能关联的字段为NULL
5 .左半连接
如果打开左半连接,则显示左半表中的记录,前提是右半表中的记录满足on语句中的判断条件。
左半连接的效果与内连接相似,比内连接更有效。
通俗理解:关键字前面的表为主表,两个表与on条件字段相交,返回上一个表中的记录
6 .交叉连接
返回两个表的笛卡尔乘积结果,而不指定关联键;这似乎与内部连接相同。
在SQL标准中,定义了交叉连接,这是无条件的内部连接。
在mysql中,没有区别,两者是等价的。
通俗理解:要返回两个表的笛卡尔乘积结果,不需要指定关联键;
如果你认为这对你有帮助。记得收藏关注!
如需转载,请注明出处
和巨婴程一起长大。让自己变得更加优秀
文章图片
【六大神兽 轻松玩转hive中join“六大神兽”之间的关系】想了解更多精彩内容,快来关注跟着巨婴来反攻吧
我最近一直在思考这个问题。你有什么看法?注意我,快点说。让我们一起交流~
推荐阅读
- 六祖慧能电影 院线电影《六祖慧能之怀会止藏》拍摄完成
- 六盘水新闻 《六盘水新闻联播》2020年10月31日节目单
- 南京六合 在南京住在六合 是一种幸福
- 笔记本内存双通道 电脑加装双通道内存条 无知放开了人的想象力 “大神”请慢走
- 死猪肉 丧心病狂 六安这个黑心老板贩卖病死猪肉长达3年……
- 白一帆 “好少年”参加 “云六一”活动
- 维生素b2服用有六忌 口腔溃疡真的是因为缺少维生素吗 3个关于口腔溃疡的真相 最后一条要警惕
- 美人温雅 五本林家成大神的古言文:除了《媚公卿》 还有这几本值得熬夜看
- 彭银华事迹 彭银华女儿小名“六一” 彭父:将来会给孩子说她爸爸的事迹
- 六位帝皇玩 “六位帝皇丸”的家族历史:看似简单的皇位更替 隐含着深刻道理