1.Hive 关联查询
- 关联查询是指对多表进行联合查询
- 主要通过JOIN语句将多个表中的行组合查询 hive JOIN仅支持等值连接
- 常见关联查询
- 内连接
- 外连接
- 交叉连接
2.内连接与交叉连接
- 内连接用于按条件组合两个表中记录,返回两表的交集
- 内连接语法:
table_reference [INNER] JOIN table_factor [join_condition]
- 交叉连接又称笛卡尔乘积,相当于两表相乘
- 交叉连接语法
table_reference CROSS JOIN table_factor [join_condition]
3.外连接
- 左外连接(LEFT JOIN),左表记录全部被选择,右表只选择符合条件的记录
table_reference LEFT [OUTER] JOIN table_factor [join_condition]
- 右外连接(RIGHT JOIN),右表记录全部被选择,左表只选择符合条件的记录
table_reference RIGHT [OUTER] JOIN table_factor [join_condition]
- 全外连接(FULL OUTER JOIN),结合左右连接的结果
table_reference FULL [OUTER] JOIN table_factor [join_condition]
4.Hive 联合查询
- 联合查询主要通过UNION子句对列进行多表组合
- UNION语句用于合并多个SELECT语句的结果集
联合查询语法
select_statement UNION [ALL|DISTINCT] select_statement…
- 要注意
- UNION的每个子集都必须有相同的列名和类型
- 排序、分组、LIMIT等操作应用在整个UNION结果之后
- UNION合并两个结果集,并去除重复行,保持默认排序
- UNION ALL合并两个结果集,不去重,不排序