hive之full outer join(全连接)使用方法
目录
介绍
语法
例子
创建顾客表:customers
创建订单表:orders
?full outer join语句
? left join + union + right join语句
介绍
full outer join结合了 LEFT JOIN 和 RIGHT JOIN 的结果,并使用NULL值作为两侧缺失匹配结果。
语法
SELECT table1.column_name(s),table2.column_name(s)
FROM table1 FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;
相当于:left join + union + right join
SELECT table1.column_name(s),table2.column_name(s)
FROM table1 LEFT OUTER JOIN table2
ON table1.column_name = table2.column_name;
UNION
SELECT table1.column_name(s),table2.column_name(s)
FROM table1 RIGHT OUTER JOIN table2
ON table1.column_name = table2.column_name;
例子
创建顾客表:customers
CREATE TABLE `default.customers`(`customer_id` varchar(25) COMMENT '顾客id',`customer_name` varchar(25) COMMENT '顾客姓名',`customer_age` varchar(25) COMMENT '顾客年龄')
PARTITIONED BY ( `date_time` string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
LOCATION'hdfs://master:9000/user/hive/warehouse/default.db/customers'
插入数据
insert into table default.customers partition(date_time='2022-04-01')
select '1','zhangsan','22'
union all
select '2','lisi','34'
union all
select '3','wangwu','21'
union all
select '7','zhaoliu','33'
union all
select '9','liuqi','44'
创建订单表:orders
CREATE TABLE `default.orders`(`order_id` varchar(25) COMMENT '订单id', `customer_id` varchar(25) COMMENT '顾客id', `order_date` varchar(25) COMMENT '订单日期')
PARTITIONED BY ( `date_time` string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde'
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
LOCATION'hdfs://master:9000/user/hive/warehouse/default.db/orders'
插入数据
insert into table default.orders partition(date_time='2022-04-01')
select '1','1','2022-04-01'
union all
select '2','2','2022-03-01'
union all
select '3','3','2022-03-02'
union all
select '4','4','2022-03-03'
union all
select '5','5','2022-03-02'
union all
select '6','6','2022-03-03'
full outer join语句
select a.customer_id,a.customer_name,a.customer_age,b.order_id,b.order_date from default.customers a
full outer join default.orders b
on a.customer_id=b.customer_id
结果
left join + union + right join语句
select a.customer_id,a.customer_name,a.customer_age,b.order_id,b.order_date from default.customers a
left join default.orders b
on a.customer_id=b.customer_id
union
select a.customer_id,a.customer_name,a.customer_age,b.order_id,b.order_date from default.customers a
right join default.orders b
on a.customer_id=b.customer_id
结果
可以看出结果是一摸一样的。
结语
本次的分享就到这里了,下一篇博客博主将带来hive之left semi join(左半连接)使用方法,敬请期待!受益的朋友或对大数据技术感兴趣的伙伴记得点赞关注支持一波!
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
hive之full outer join(全连接)使用方法相关推荐
- pandas使用merge函数将多个dataframe数据连接起来、设置how参数为outer指定全连接(outer join)、left_on参数指定左侧dataframe的连接字段
pandas使用merge函数将多个dataframe数据连接起来.设置how参数为outer指定全连接(outer join).left_on参数指定左侧dataframe的连接字段.right_o ...
- 零基础自学SQL课程 | OUTER JOIN外连接
大家好,我是宁一. 今天讲解SQL教程第12课:OUTER JOIN外连接. 外连接是左外连接(LEFT OUTER JOIN).右外连接(RIGHT OUTER JOIN).全外连接(FULL OU ...
- full join 全连接
full join全连接 只要某个表存在匹配,就返回行 full outer join 结合了left join和right join的结果 语法: SELECT column_name(s) FRO ...
- SQL入门之第十一讲——OUTER JOIN 外连接
外连接是左外连接(LEFT OUTER JOIN),右外连接(RIGHT OUTER JOIN),全外连接(FULL OUTER JOIN)的统称. 一般情况下直接忽视掉OUTER就可以,直接统称: ...
- 手写数字识别全部代码--全连接神经网络方法
''' #2018-06-25 272015 June Monday the 26 week, the 176 day SZ 手写字体识别程序文件1: 这个程序使用了全连接神经网络也就是DNN. 定义 ...
- 实现mysql全连接的方法
相信在处理业务场景的时候,大家都会用到两个表并表,常用的还是左联接与右连接,left join/right join,还有inner join 内连接,但是注意:mysql中居然没有full join ...
- SQL内连接、外连接、全连接、交叉连接、自连接、自然连接
SQL内连接.外连接.交叉连接 内连接(inner join) 外连接(outer join) 左外连接 右外连接 全连接(full join) 交叉连接(cross join) 隐式交叉连接与显式交 ...
- full outer join 与full join的区别_基础小白的SQL的JOIN语法解析
总的来说,四种JOIN的使用/区别可以描述为: left join 会从左表(shop)那里返回所有的记录,即使在右表(sale_detail)中没有匹配的行. right outer join 右连 ...
- Oracle学习笔记(三)。连接查询。等值连接,非等值连接,自连接,LEFT OUTER JOIN,RIGHT JOIN,FULL JOIN,自然连接,内连接 INNERJOIN
文章目录 1. 什么是多表查询 2. 多表链接方式 3. 多表连接语法 3.1 语法结构 3.2 定义连接 3.3 原则 4. 等值连接-内连接 4.1 什么是等值连接 4.2 抉择矩阵 4.3 使用 ...
最新文章
- 开启mapper接口扫描,添加分页插件
- html在线编辑器 asp.net,ASP.NET网站使用Kindeditor富文本编辑器配置步骤
- Swift 2.3- 3.0
- 杭电1495非常可乐
- 恭喜你,2018 中国开发者有奖大调查“榜上有名”!
- C# Interface 的一点笔记。explicit Interface Implementation
- 新建web项目上传SVN服务器
- 机器人操作系统ROS是什么?
- 艺术签名软件 3.0 绿色版
- 组装专用计算机系统吗,组装的电脑有自带系统吗?
- 笔记本重启一直进bios
- vs code默认浏览器
- 电脑出问题解决办法(Win7)
- 电商平台的开发需要注意的问题有哪些?
- ORACLE的递归查询
- Udacity Sparkify项目
- 仿微信语音功能的流程
- 读书笔记—《销售铁军》随记6
- 西门子PLC控制器与ModbusTCP工业RFID读写器CK-FR08-E00的通信操作实例
- 送外卖优先级_【超新人\超现实】送外卖需要了解的那些事
热门文章
- 你知道如何判定一个大整数为素数吗?——米勒拉宾素数判定算法
- 树莓派linux led字符设备驱动(信号量)
- 普渡大学计算机科学在美就业,优势背景助力美国普渡大学计算机科学CS本科申请!...
- nyoj 1099 Lan Xiang's Square (水题)
- 微信小程序商城源码学习
- I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之kernel移植
- 安全快报 | 美国国土安全部负责人表示,海事部门缺乏网络安全
- 动态设置根节点字体大小
- 最小二乘法多项式曲线拟合数学原理及其C++实现
- 权限细粒度之参数控制,不同人看到报表模板不同