根据工作中经验总结出来   left  join  常用的  使用注意点:    A     Left    join   B    on   A.id =  B.id

第一种情况:

   如果 A 表  的  id  存在  重复, B 表的 id 不存在 重复, 那么   select * from   A     Left    join   B    on   A.id =  B.id,  SQL 执行的结果  数据条数    和   A 表  保持一致;

第二种情况:

   如果 A 表  的  id  不存在  重复, B 表的 id 不存在 重复, 那么   select * from   A     Left    join   B    on   A.id =  B.id,  SQL 执行的结果  数据条数    和   A 表  保持一致;

第三种情况:

   如果 A 表  的  id  不存在  重复, B 表的 id 存在 重复, 那么   select * from   A     Left    join   B    on   A.id =  B.id,  SQL 执行的结果  数据条数    和   A 表  不保持一致,SQL出来的条数比A表数据多;

总结:  A     Left    join   B    on   A.id =  B.id

1:不管 A表  id  重复不重复,只要 B 表  id 不重复,使用  left  join  结果 准确;

2:如果B表  id 存在 重复,使用  A  left   join  B   之前,务必  对 B  表  进行   id  的  distinct    或者   group  by  操作,保证   B 表 的  id  在  执行  left   join   之前,  id  保持  唯一性; 否则,left  join  出来的 结果是错误的。

原创 Hive left join 技巧总结的更多相关文章

  1. Hive 基本语法操练(五):Hive 的 JOIN 用法

    Hive 的 JOIN 用法 hive只支持等连接,外连接,左半连接.hive不支持非相等的join条件(通过其他方式实现,如left outer join),因为它很难在map/reduce中实现这 ...

  2. HIVE: Map Join Vs Common Join, and SMB

    HIVE  Map Join is nothing but the extended version of Hash Join of SQL Server - just extending Hash ...

  3. hive:join操作

    hive的多表连接,都会转换成多个MR job,每一个MR job在hive中均称为Join阶段.按照join程序最后一个表应该尽量是大表,因为join前一阶段生成的数据会存在于Reducer 的bu ...

  4. Hive中Join的原理和机制

    转自:http://lxw1234.com/archives/2015/06/313.htm 笼统的说,Hive中的Join可分为Common Join(Reduce阶段完成join)和Map Joi ...

  5. Hive的join表连接查询的一些注意事项

    Hive支持的表连接查询的语法: join_table: table_reference JOIN table_factor [join_condition] | table_reference {L ...

  6. hive的join查询

    hive的join查询 语法 join_table: table_reference [INNER] JOIN table_factor [join_condition] | table_refere ...

  7. Hive 中Join的专题---Join详解

    1.什么是等值连接? 2.hive转换多表join时,如果每个表在join字句中,使用的都是同一个列,该如何处理? 3.LEFT,RIGHT,FULL OUTER连接的作用是什么? 4.LEFT或RI ...

  8. Hive中Join的类型和用法

    关键字:Hive Join.Hive LEFT|RIGTH|FULL OUTER JOIN.Hive LEFT SEMI JOIN.Hive Cross Join Hive中除了支持和传统数据库中一样 ...

  9. hive的join优化

    “国际大学生节”又称“世界大学生节”.“世界学生日”.“国际学生日”.1946年,世界各国学生代表于布拉格召开全世界学生大会,宣布把每年的11月17日定为“世界大学生节”,以加强全世界大学生的团结和友 ...

随机推荐

  1. 构建之法组——“别吃错喽”微信小程序评价

    此作业要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/9860 基于NABCD评论作品,及改进建议 1.根据(不限于)NABCD评论 ...

  2. homebrew安装和解决brew安装速度慢的问题

    homebrew安装 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/inst ...

  3. 2019-9-20:渗透测试,基础学习,笔记,metasploit的基础使用

    使用kali下metasploit生成木马,控制windows系统 kali基于debin的数字取证系统,上面集成了很多渗透测试工具,前身为bt r3(BrackTrack) Metasploit,是 ...

  4. 驰骋工作流系统-Java共工作流引擎配置定时任务

    关键词:工作流定时任务  流程引擎定时任务设置  工作流系统定时任务配置  开源工作流引擎 开源工作流系统 一.定时任务的作用 发送邮件,发送短信. 处理节点自动执行的任务.比如:一个节点的待办工作是 ...

  5. github下载历史版本--xdd

    第一步 打开一个仓库,可以看到此时在主分支下,点击1位置查看历史版本 第二步 现在可以查看到所有的版本(提交)信息,单击2位置进入该版本 第三步 单击3位置浏览并打开该版本 第四步 进入该版本之后,可 ...

  6. vue学习笔记(九)vue-cli中的组件通信

    前言 在上一篇博客vue学习笔记(八)组件校验&通信中,我们学会了vue中组件的校验和父组件向子组件传递信息以及子组件通知父组件(父子组件通信),上一篇博客也提到那是对组件内容的刚刚开始,而本 ...

  7. Spring(Bean)4 配置数据源、连接池

    <!-- 配置数据源 Mysql c3p0: 连接池. <bean id="dataSource" class="com.mchange.v2.c3p0.Co ...

  8. java数据类型(大小等),变量定义,各进制书写方法

    1. java中字符占两个字节,因为char类型占两个字节(16位),而C,C++中占1字节(8位). 2. 变量定义 第一步:声明(Declaration) 第二步:赋值(Assignment) 这 ...

  9. 安装PHP5和PHP7

    5月25日任务 课程内容: 11.10/11.11/11.12 安装PHP511.13 安装PHP7php中mysql,mysqli,mysqlnd,pdo到底是什么http://blog.csdn. ...

  10. VMware中windows虚拟机的安装流程

    1.打开安装的VMware 15,点击新建虚拟机 2.选择典型即可,点击下一步          3.选择“稍后安装操作系统”,点击下一步        4.选择想安的版本,点击下一步         ...