目录

介绍

语法

例子

创建顾客表: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(全连接)使用方法相关推荐

  1. pandas使用merge函数将多个dataframe数据连接起来、设置how参数为outer指定全连接(outer join)、left_on参数指定左侧dataframe的连接字段

    pandas使用merge函数将多个dataframe数据连接起来.设置how参数为outer指定全连接(outer join).left_on参数指定左侧dataframe的连接字段.right_o ...

  2. 零基础自学SQL课程 | OUTER JOIN外连接

    大家好,我是宁一. 今天讲解SQL教程第12课:OUTER JOIN外连接. 外连接是左外连接(LEFT OUTER JOIN).右外连接(RIGHT OUTER JOIN).全外连接(FULL OU ...

  3. full join 全连接

    full join全连接 只要某个表存在匹配,就返回行 full outer join 结合了left join和right join的结果 语法: SELECT column_name(s) FRO ...

  4. SQL入门之第十一讲——OUTER JOIN 外连接

    外连接是左外连接(LEFT OUTER JOIN),右外连接(RIGHT OUTER JOIN),全外连接(FULL OUTER JOIN)的统称. 一般情况下直接忽视掉OUTER就可以,直接统称: ...

  5. 手写数字识别全部代码--全连接神经网络方法

    ''' #2018-06-25 272015 June Monday the 26 week, the 176 day SZ 手写字体识别程序文件1: 这个程序使用了全连接神经网络也就是DNN. 定义 ...

  6. 实现mysql全连接的方法

    相信在处理业务场景的时候,大家都会用到两个表并表,常用的还是左联接与右连接,left join/right join,还有inner join 内连接,但是注意:mysql中居然没有full join ...

  7. SQL内连接、外连接、全连接、交叉连接、自连接、自然连接

    SQL内连接.外连接.交叉连接 内连接(inner join) 外连接(outer join) 左外连接 右外连接 全连接(full join) 交叉连接(cross join) 隐式交叉连接与显式交 ...

  8. full outer join 与full join的区别_基础小白的SQL的JOIN语法解析

    总的来说,四种JOIN的使用/区别可以描述为: left join 会从左表(shop)那里返回所有的记录,即使在右表(sale_detail)中没有匹配的行. right outer join 右连 ...

  9. 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 使用 ...

最新文章

  1. 开启mapper接口扫描,添加分页插件
  2. html在线编辑器 asp.net,ASP.NET网站使用Kindeditor富文本编辑器配置步骤
  3. Swift 2.3- 3.0
  4. 杭电1495非常可乐
  5. 恭喜你,2018 中国开发者有奖大调查“榜上有名”!
  6. C# Interface 的一点笔记。explicit Interface Implementation
  7. 新建web项目上传SVN服务器
  8. 机器人操作系统ROS是什么?
  9. 艺术签名软件 3.0 绿色版
  10. 组装专用计算机系统吗,组装的电脑有自带系统吗?
  11. 笔记本重启一直进bios
  12. vs code默认浏览器
  13. 电脑出问题解决办法(Win7)
  14. 电商平台的开发需要注意的问题有哪些?
  15. ORACLE的递归查询
  16. Udacity Sparkify项目
  17. 仿微信语音功能的流程
  18. 读书笔记—《销售铁军》随记6
  19. 西门子PLC控制器与ModbusTCP工业RFID读写器CK-FR08-E00的通信操作实例
  20. 送外卖优先级_【超新人\超现实】送外卖需要了解的那些事

热门文章

  1. 你知道如何判定一个大整数为素数吗?——米勒拉宾素数判定算法
  2. 树莓派linux led字符设备驱动(信号量)
  3. 普渡大学计算机科学在美就业,优势背景助力美国普渡大学计算机科学CS本科申请!...
  4. nyoj 1099 Lan Xiang's Square (水题)
  5. 微信小程序商城源码学习
  6. I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之kernel移植
  7. 安全快报 | 美国国土安全部负责人表示,海事部门缺乏网络安全
  8. 动态设置根节点字体大小
  9. 最小二乘法多项式曲线拟合数学原理及其C++实现
  10. 权限细粒度之参数控制,不同人看到报表模板不同