1 join概念回顾
根据数据库的三范式设计要求和日常工作习惯来说,我们通常不会设计一张大表把所有类型的数据都放在一起,而是不同类型的数据设计不同的表存储。比如在设计一个订单数据表的时候,可以将客户编号作为一个外键和订单表建立相应的关系。而不可以在订单表中添加关于客户其它信息(比如姓名、所属公司等)的字段。
在这种情况下,有时需要基于多张表查询才能得到最终完整的结果,SQL中join语法的出现是用于根据两个或多个表中的列之间的关系,从这些表中共同组合查询数据,因此有时为了得到完整的结果,我们就需要执行 join。
Hive作为面向分析的数据仓库软件,为了更好的支持数据分析的功能丰富,也实现了join的语法,整体上来看和RDBMS中的join语法类似,只不过在某些点有自己的特色。需要特别注意。
2 Hive join语法
在Hive中,当下版本3.1.2总共支持6种join语法。分别是:
inner join(内连接)、left join(左连接)、right join(右连接)、full outer join(全外连接)、left semi join(左半开连接)、cross join(交叉连接,也叫做笛卡尔乘积)。
2.1 规则树
join_table:
t