hive 各种 join (left outer join、join、full outer join)
一、概念
1、左连接 left outer join
以左边表为准,逐条去右边表找相同字段,如果有多条会依次列出。
2、连接join
找出左右相同同的记录。
3、全连接 full outer join
包括两个表的join结果,左边在右边中没找到的结果(NULL),右边在左边没找到的结果。
会对结果去重,返回并集。
二、实验
1、准备数据
create external table IF NOT EXISTS temp_testjoin_ta
(
label string,
qu string
)
partitioned by (dt string)
row format delimited fields terminated by '\t'
stored as textfile;
ALTER TABLE temp_testjoin_ta ADD IF NOT EXISTS PARTITION (dt = '2014-08-08') location '/temp/jinlong10/testjoin/ta';l1 q1
l1 q2create external table IF NOT EXISTS temp_testjoin_tb
(
qu string,
inmyway string
)
partitioned by (dt string)
row format delimited fields terminated by '\t'
stored as textfile;
ALTER TABLE temp_testjoin_tb ADD IF NOT EXISTS PARTITION (dt = '2014-08-08') location '/temp/jinlong10/testjoin/tb/';q1 i1
q1 i1
q1 i2
q1 i3
q2 i1
q2 i2
q3 i10
2、join
select * from (select label,qu from temp_testjoin_ta where dt = '2014-08-08') ta join (select qu,inmyway from temp_testjoin_tb where dt = '2014-08-08') tb on ta.qu = tb.qu ;
l1 q1 q1 i1
l1 q1 q1 i1
l1 q1 q1 i2
l1 q1 q1 i3
l1 q2 q2 i1
l1 q2 q2 i2select * from (select label,qu from temp_testjoin_ta where dt = '2014-08-08') ta join (select qu,inmyway from temp_testjoin_tb where dt = '2014-08-08') tb on ta.qu = tb.qu group by label,inmyway;
l1 i1
l1 i2
l1 i3
3、left outer join
select * from (select label,qu from temp_testjoin_ta where dt = '2014-08-08') ta left outer join (select qu,inmyway from temp_testjoin_tb where dt = '2014-08-08') tb on ta.qu = tb.qu ;
l1 q1 q1 i1
l1 q1 q1 i1
l1 q1 q1 i2
l1 q1 q1 i3
l1 q2 q2 i1
l1 q2 q2 i2select * from (select label,qu from temp_testjoin_ta where dt = '2014-08-08') ta left outer join (select qu,inmyway from temp_testjoin_tb where dt = '2014-08-08') tb on ta.qu = tb.qu group by label,inmyway;
l1 i1
l1 i2
l1 i3
4、full outer join
select * from
(select label,qu from temp_testjoin_ta where dt = '2014-08-08') ta
full outer join (select qu,inmyway from temp_testjoin_tb where dt = '2014-08-08') tb
on ta.qu = tb.qu ; l1 q1 q1 i3
l1 q1 q1 i2
l1 q1 q1 i1
l1 q1 q1 i1
l1 q2 q2 i2
l1 q2 q2 i1
NULL NULL q3 i10
hive 各种 join (left outer join、join、full outer join)相关推荐
- oracle hash join outer,CSS_浅谈Oracle中的三种Join方法,基本概念
Nested loop join:
Outer - phpStudy...
浅谈Oracle中的三种Join方法 基本概念 Nested loop join: Outer table中的每一行与inner table中的相应记录join,类似一个嵌套的循环. Sort mer ...
- mysql outer join报错_千与千寻-MySQL联结join
MySQL的联查包括外联结,內联结,自然联结,cross联结等等. 1.cross join cross join是对两个表执行笛卡尔运算,显示所有两个表的组合返回m*n行.它可以省略掉cross,或 ...
- left join 和 left outer join (可解决多个表left join的问题)
http://blog.csdn.net/laolaowhn/archive/2007/09/07/1776219.aspx 通俗的讲: A left join B 的 ...
- left join 后数据变多_Flink 双流 Join 的3种操作示例
在数据库中的静态表上做 OLAP 分析时,两表 join 是非常常见的操作.同理,在流式处理作业中,有时也需要在两条流上做 join 以获得更丰富的信息.Flink DataStream API 为用 ...
- oracle 非等值关联 优化,Oracle优化器、优化模式、表的连接方式(Hash Join、Nested Loop、Sort Merge Join)...
查询优化器 Oracle的查询优化器(QO)分为两种: 1. RBO:Ruled-Based Optimization, 基于规则的优化器: 2. CBO :Cost-Based Optimizati ...
- 为什么是string.join(list)而不是list.join(string)?
这一直使我感到困惑. 看起来这样会更好: my_list = ["Hello", "world"] print(my_list.join("-&quo ...
- mysql join 算法_【MySQL】之join算法详解
在阿里巴巴的java开发手册有这么一条强制规定:超过三个表禁止join,需要join的字段,数据类型保持绝对一致,多表关联查询时,要保证被关联的字段需要有索引. 为什么尽量避免使用join?如果使用j ...
- java join使用实例_Java多线程中关于join方法的使用实例解析
先上代码 新建一个Thread,代码如下: package com.thread.test; public class MyThread extends Thread { private String ...
- python中os.path.join()的循环用法_Python os.path.join()用法及代码示例
Python中的OS模块提供了与操作系统进行交互的功能.操作系统属于Python的标准实用程序模块.该模块提供了使用依赖于操作系统的功能的便携式方法. os.path模块是Python中OS模块的su ...
- 实时数仓(六)DWM层双流join(订单表和订单明细表join)
DWM层双流join(订单表和订单明细表join) 官方文档: https://nightlies.apache.org/flink/flink-docs-release-1.12/dev/strea ...
最新文章
- 企业级微服务框架落地
- birt脚本for循环语句_Python初级教程(11): for循环语句
- HDC2020开发者大会鸿蒙,华为开发者大会HDC 2020将于9月10日开启 鸿蒙OS 2.0亮相
- leetcode Candy
- html博客网页代码_Python自动化运维系列:Django搭建个人博客之前端篇
- linux直播电视软件下载,周末了!通过Linux Mint开发的IPTV播放器观看海量国内外直播电视...
- Chapter2 - Sockets and Patterns
- Windows 7 安装时候提示,无法更改启动项安装失败,以及msr分区
- 约束满足问题(Constraint Satisfaction Problems——CSPs):回溯操作,向前检验,约束传播,局部搜索
- Graph Stacked Hourglass Networks for 3D Human Pose Estimation
- Scrum Or Kanban: 选择属于自己的敏捷管理框架
- 6. 中学生心理辅导
- SQL server数据库的操作步骤·Transact-SQL创建
- 哪些数学特征可以用来描述一组数据
- Numpy 解一元二次方程
- 股票基础知识(入市必读)
- thinkphp多用户在线客服系统源码-thinkPHP内核 附使用教程
- python 爬虫 爬取肯德基门店信息
- 转:090906爆笑COD4山寨剧情
- FDN, SDN, ADN, BDN, MSISDN,LND, EXT1,EXT2, EXT3 代表的意义和作用