--建表
create TABLE left_semi_join1(id int,name STRING
);create TABLE left_semi_join2(id int,age STRING
);--插入数据
INSERT INTO TABLE left_semi_join1 VALUES (1,'james'),(2,'hsl'),(3,'james'),(4,'hsl');
INSERT INTO TABLE left_semi_join2 VALUES (1,'22'),(2,'33'),(3,'44');
SELECT * from left_semi_join1;

SELECT * from left_semi_join2;

SELECT  *
FROM    left_semi_join1 a
LEFT SEMI JOIN left_semi_join2 b
ON      a.id = b.id
;

等价于:

SELECT  *
FROM    left_semi_join1 a
where a.id in (select id from left_semi_join2)
;

SELECT  *
FROM    left_semi_join1 a
LEFT JOIN left_semi_join2 b
ON      a.id = b.id
;

什么时候使用left semi join?

左表与右表的关联列都存在重复数据时,由于产生笛卡尔积,使用left join是低效的。此时采用left semi join

当左表left semi join右表时,结果表只能有左表的列,且右表只能在on中设置过滤条件,并且当右表有重复数据时,左表只会关联一次。

left join和left semi join的区别相关推荐

  1. 转载:left join和left semi join的联系和区别

    1.联系 他们都是 hive join 方式的一种,join on 属于 common join(shuffle join/reduce join),而 left semi join 则属于 map ...

  2. left join和left semi join的联系和区别

    ** 转载:left join和left semi join的联系和区别 ** 1.联系 他们都是 hive join 方式的一种,join on 属于 common join(shuffle joi ...

  3. 面试官:说说left join和left semi join 两者有什么区别?

    张工是一名程序员,主要是做java开发,有次到一家软件公司面试软件开发岗位,面试官问了他两个问题,其中有一个问题是这样的这样: 说说left join和left semi join 有什么区别? 对于 ...

  4. ​left join 和 left semi join区别 ​

    左连接与+号, 就是左边的表数据都要. select * from a,b where a.id=b.id(+); (+)写在where后面,不能与or/in连用,ui select * from a ...

  5. join left semi_Hive的left join、left outer join和left semi join三者的区别

    Hive的Join的文档说明地址: https://cwiki.apache.org/confluence/display/Hive/LanguageManual%2BJoins 以下为两个测试数据表 ...

  6. join left semi_HIVE--left semi join

    实验: hive> select * from b1; OK 1       003     20170511 1       004     20170512 1       005     ...

  7. Hive中的map join、left semi join和sort merge bucket join

    map join map join是将join双方比较小的表直接分发到各个 map进程的内存中,在map进程中进行join操作,这样就不用进行reduce步骤,从而提高了速度. 如果不指定mapjoi ...

  8. hive 的 left semi join 讲解与left jion的区别

    一:介绍 他们都是 hive join 方式的一种,join on 属于 common join(shuffle join/reduce join), 而 left semi join 则属于 map ...

  9. left semi join 和 left join 区别

    left semi join 和 left join 联系和区别 1.都是左表连接,但是semi join右表关联不左表也不会出来,left join不一样 2.semi join只能查询左表信息,l ...

最新文章

  1. dubbo yml配置_利用springboot+dubbo,构建分布式微服务,全程注解开发(一)
  2. linux驱动的入口函数module_init的加载和释放
  3. 基于Boost::beast模块的协程WebSocket客户端
  4. Editability on SAP Text
  5. windows键按了没反应_windows快捷键使用 - 小怜
  6. Pandas 文本数据方法 join( )
  7. Xcode12.3 、12.4 运行 iOS15 :The code signature version is no longer supported
  8. 基于51单片机的超声波倒车雷达防撞系统 proteus仿真 LCD1602显示
  9. 【matlab小白训练】BP神经网络
  10. python 两个nc文件 风场,ECMWF 不同step 的 NC 文件如何合并
  11. 一个非常好用的批量图片压缩工具
  12. 超 3000 个特效镜头,复联 4 是如何「速成」的?
  13. 多智能体强化学习- COMA
  14. 【时间序列】时间序列曲线平滑+预测(LSTM)
  15. 细菌(disease)解题报告 - 搜索与回朔
  16. 留言滚动栏,html滚动代码,滚动留言代码
  17. request.getParameter和SpringMVC后台控制层获取参数的方式
  18. 计算机英语统考试卷分析,英语试卷分析
  19. 2021全新Java多线程并发入门到精通,一篇就能学会
  20. python日语识别-编写简单的Python程序来判断文本的语种

热门文章

  1. python代码图片头像_python图像处理-个性化头像
  2. IAR For ARM 历史版本下载链接
  3. 2023年最热门的网络安全岗位分析
  4. .snk文件用什么程序可以打开
  5. WOS搜索输出文件的格式整理
  6. uniapp 日期计算年龄
  7. RHCE7-NOTE(红帽工程师--题库详细笔记)
  8. IDA Pro7.0使用技巧总结
  9. 说说如何安装与配置 jBPM4 开发环境
  10. (2018)All-optical machine learning using diffractive deep neural networks