Hive SQL Join关联查询
Posted 黑马程序员官方
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive SQL Join关联查询相关的知识,希望对你有一定的参考价值。
Hadoop离线是大数据生态圈的核心与基石,是整个大数据开发的入门。本次分享内容让初学者能高效、快捷掌握Hadoop必备知识,大大缩短Hadoop离线阶段学习时间,下面一起开始今天的学习!
▼往期内容汇总:
- 大数据导论
- Linux操作系统概述
- VMware Workstation虚拟机使用
- Linux常用基础命令、系统命令
- Apache Hadoop概述
- Apache Hadoop集群搭建
- HDFS分布式文件系统基础
- Hadoop技术之HDFS shell操作
- Hadoop技术之HDFS工作流程与机制
- Hadoop MapReduce介绍、官方示例及执行流程
一、Hive Join语法规则
背景
根据数据库的三范式设计要求和日常工作习惯来说, 我们通常不会设计一张大表把所有类型的数据都放在一起,而是不同类型的数据设计不同的表存储。
比如在设计一个订单数据表的时候,可以将客户编号作为一个外键和订单表建立相应的关系。而不可以在订单表中添加关于客户其它信息(比如姓名、所属公司等)的字段。
在这种情况下,有时需要基于多张表查询才能得到最终完整的结果;
join语法的出现是用于根据两个或多个表中的列之间的关系,从这些表中共同组合查询数据。
二、Hive 主要的Join方式
Hive join语法规则
在Hive中,使用最多,最重要的两种join分别是:inner join (内连接) 、 left join (左连接)
table_reference:是join查询中使用的表名。
table_factor:与table_reference相同,是联接查询中使用的表名。
join_condition: join查询关联的条件,如果在两个以上的表上需要连接, 则使用AND关键字。
- join查询数据环境准备
为了更好的练习、学习掌握Hive中的join语法, 下面我们去创建3张表并且加载数据到表中。
- 表1: employee 员工表;
- 表2: employee_address 员工住址信息表;
- 表3: employee_connection 员工联系方式表;
inner join 内连接
内连接是最常见的一种连接,它也被称为普通连接,其中inner可以省略: inner join == join;
只有进行连接的两个表中都存在与连接条件相匹配的数据才会被留下来。
left join 左连接
left join中文叫做是左外连接(Left Outer Join)或者左连接,其中outer可以省略, left outer join是早期的写法。
left join的核心就在于left左。左指的是join关键字左边的表, 简称左表。
通俗解释: join时以左表的全部数据为准, 右边与之关联;左表数据全部返回,右表关联上的显示返回, 关联不上的显示null返回。
以上是关于Hive SQL Join关联查询的主要内容,如果未能解决你的问题,请参考以下文章
sql用inner join内关联查询有多条记录一样只取一条?
oracle sql 转换成 hive sql -子查询转关联查询(十七),子查询中有2个表外字段关联写法,round函数与power函数的运用