IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Hive的连接查询——Join查询 -> 正文阅读

[大数据]Hive的连接查询——Join查询

????????Join语句主要做多表关联查询:当我们需要的数据来自多张表,多张表之间还有连接关系,我们就可以使用连接查询获取我们相关的信息。

??????? Hive中连接查询和sql中的join连接几乎一致,共有四种:内连接、左外连接、右外连接、满外连接。

????????注意在MySQL中支持四种连接的语法,但是不支持满外连接的操作(满外连接的语法是支持的)。Hive都支持。

join语句的一般格式:

select 查询字段

from tableA

[inner|left|right|full] join tableB

on A\B 两个表的连接条件

where 筛选条件

group by 分组条件

having 分组筛选

order by 全局排序

limit 范围限制

一、内连接

?内连接:只有进行连接的两个表中都存在与连接条件相匹配的数据才会被保留下来。

案例:查询哪些部门有员工,并且显示每个部门员工的姓名

hive (default)> select e.empno, e.ename, d.deptno from emp as e inner join dept as d on e.deptno = d.deptno;

二、左外连接

左外连接:JOIN操作符左边表中符合WHERE子句的所有记录将会被返回。

案例:查询所有的员工信息以及员工对应的部门名字,如果员工没有对应部门,数据也保留。

hive (default)> select e.empno, e.ename, d.deptno from emp as e left join dept as d on e.deptno = d.deptno;

三、右外连接

右外连接:JOIN操作符右边表中符合WHERE子句的所有记录将会被返回。

案例:查询所有部门信息,并且将部门对应的员工信息也保留,如果部门没有员工,部门信息也保留

hive (default)> select e.empno, e.ename, d.deptno from emp e right join dept d on e.deptno = d.deptno;

四、满外连接

满外连接:将会返回所有表中符合WHERE语句条件的所有记录。如果任一表的指定字段没有符合条件的值的话,那么就使用NULL值替代。

案例:查询所有员工和部门信息,如果员工有部门则显示部门名,如果部门有员工就显示员工id和姓名;如果员工没有部门、部门没员工,显示NULL

hive (default)> select e.empno, e.ename, d.deptno from emp e full join dept d on e.deptno = d.deptno;

五、笛卡尔乘积

join中有一个禁忌的join,叫做笛卡尔乘积,这种join属于一种致命的错误结果。

1、笛卡尔集会在下面条件下产生:

(1)省略连接条件(on)

(2)连接条件无效

(3)所有表中的所有行互相连接

2、案例实操

hive (default)> select empno, deptno from emp, dept;

FAILED: SemanticException Column deptno Found in more than One Tables/Subqueries

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-01 12:00:29  更:2021-09-01 12:01:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:18:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码