一、概念

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)相关推荐

  1. oracle hash join outer,CSS_浅谈Oracle中的三种Join方法,基本概念 Nested loop join: Outer - phpStudy...

    浅谈Oracle中的三种Join方法 基本概念 Nested loop join: Outer table中的每一行与inner table中的相应记录join,类似一个嵌套的循环. Sort mer ...

  2. mysql outer join报错_千与千寻-MySQL联结join

    MySQL的联查包括外联结,內联结,自然联结,cross联结等等. 1.cross join cross join是对两个表执行笛卡尔运算,显示所有两个表的组合返回m*n行.它可以省略掉cross,或 ...

  3. left join 和 left outer join (可解决多个表left join的问题)

    http://blog.csdn.net/laolaowhn/archive/2007/09/07/1776219.aspx 通俗的讲:     A    left     join    B   的 ...

  4. left join 后数据变多_Flink 双流 Join 的3种操作示例

    在数据库中的静态表上做 OLAP 分析时,两表 join 是非常常见的操作.同理,在流式处理作业中,有时也需要在两条流上做 join 以获得更丰富的信息.Flink DataStream API 为用 ...

  5. oracle 非等值关联 优化,Oracle优化器、优化模式、表的连接方式(Hash Join、Nested Loop、Sort Merge Join)...

    查询优化器 Oracle的查询优化器(QO)分为两种: 1. RBO:Ruled-Based Optimization, 基于规则的优化器: 2. CBO :Cost-Based Optimizati ...

  6. 为什么是string.join(list)而不是list.join(string)?

    这一直使我感到困惑. 看起来这样会更好: my_list = ["Hello", "world"] print(my_list.join("-&quo ...

  7. mysql join 算法_【MySQL】之join算法详解

    在阿里巴巴的java开发手册有这么一条强制规定:超过三个表禁止join,需要join的字段,数据类型保持绝对一致,多表关联查询时,要保证被关联的字段需要有索引. 为什么尽量避免使用join?如果使用j ...

  8. java join使用实例_Java多线程中关于join方法的使用实例解析

    先上代码 新建一个Thread,代码如下: package com.thread.test; public class MyThread extends Thread { private String ...

  9. python中os.path.join()的循环用法_Python os.path.join()用法及代码示例

    Python中的OS模块提供了与操作系统进行交互的功能.操作系统属于Python的标准实用程序模块.该模块提供了使用依赖于操作系统的功能的便携式方法. os.path模块是Python中OS模块的su ...

  10. 实时数仓(六)DWM层双流join(订单表和订单明细表join)

    DWM层双流join(订单表和订单明细表join) 官方文档: https://nightlies.apache.org/flink/flink-docs-release-1.12/dev/strea ...

最新文章

  1. 企业级微服务框架落地
  2. birt脚本for循环语句_Python初级教程(11): for循环语句
  3. HDC2020开发者大会鸿蒙,华为开发者大会HDC 2020将于9月10日开启 鸿蒙OS 2.0亮相
  4. leetcode Candy
  5. html博客网页代码_Python自动化运维系列:Django搭建个人博客之前端篇
  6. linux直播电视软件下载,周末了!通过Linux Mint开发的IPTV播放器观看海量国内外直播电视...
  7. Chapter2 - Sockets and Patterns
  8. Windows 7 安装时候提示,无法更改启动项安装失败,以及msr分区
  9. 约束满足问题(Constraint Satisfaction Problems——CSPs):回溯操作,向前检验,约束传播,局部搜索
  10. Graph Stacked Hourglass Networks for 3D Human Pose Estimation
  11. Scrum Or Kanban: 选择属于自己的敏捷管理框架
  12. 6. 中学生心理辅导
  13. SQL server数据库的操作步骤·Transact-SQL创建
  14. 哪些数学特征可以用来描述一组数据
  15. Numpy 解一元二次方程
  16. 股票基础知识(入市必读)
  17. thinkphp多用户在线客服系统源码-thinkPHP内核 附使用教程
  18. python 爬虫 爬取肯德基门店信息
  19. 转:090906爆笑COD4山寨剧情
  20. FDN, SDN, ADN, BDN, MSISDN,LND, EXT1,EXT2, EXT3 代表的意义和作用

热门文章

  1. 国际上哪个学校计算机专业好,美国计算机专业大学排名前十有哪些?
  2. TCP重点系列之sack介绍
  3. Java快车读书笔记
  4. 算法题c++刷题记录之数据结构部分
  5. 01背包问题,多重背包问题-分组背包问题-完全背包问题-总结-内含4种经典背包问题
  6. 电气火灾监控系统在某市新能源有轨电车示范线工程案例
  7. 2023电工杯数学建模A题思路模型代码
  8. JUC-BlockingQueue二
  9. PHP安装(Apache、Mysql、PHP整合)
  10. VUE:自定义指令(directives )选项的用法