left join和left semi join的区别
--建表
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的区别相关推荐
- 转载:left join和left semi join的联系和区别
1.联系 他们都是 hive join 方式的一种,join on 属于 common join(shuffle join/reduce join),而 left semi join 则属于 map ...
- left join和left semi join的联系和区别
** 转载:left join和left semi join的联系和区别 ** 1.联系 他们都是 hive join 方式的一种,join on 属于 common join(shuffle joi ...
- 面试官:说说left join和left semi join 两者有什么区别?
张工是一名程序员,主要是做java开发,有次到一家软件公司面试软件开发岗位,面试官问了他两个问题,其中有一个问题是这样的这样: 说说left join和left semi join 有什么区别? 对于 ...
- left join 和 left semi join区别
左连接与+号, 就是左边的表数据都要. select * from a,b where a.id=b.id(+); (+)写在where后面,不能与or/in连用,ui select * from a ...
- join left semi_Hive的left join、left outer join和left semi join三者的区别
Hive的Join的文档说明地址: https://cwiki.apache.org/confluence/display/Hive/LanguageManual%2BJoins 以下为两个测试数据表 ...
- join left semi_HIVE--left semi join
实验: hive> select * from b1; OK 1 003 20170511 1 004 20170512 1 005 ...
- Hive中的map join、left semi join和sort merge bucket join
map join map join是将join双方比较小的表直接分发到各个 map进程的内存中,在map进程中进行join操作,这样就不用进行reduce步骤,从而提高了速度. 如果不指定mapjoi ...
- hive 的 left semi join 讲解与left jion的区别
一:介绍 他们都是 hive join 方式的一种,join on 属于 common join(shuffle join/reduce join), 而 left semi join 则属于 map ...
- left semi join 和 left join 区别
left semi join 和 left join 联系和区别 1.都是左表连接,但是semi join右表关联不左表也不会出来,left join不一样 2.semi join只能查询左表信息,l ...
最新文章
- dubbo yml配置_利用springboot+dubbo,构建分布式微服务,全程注解开发(一)
- linux驱动的入口函数module_init的加载和释放
- 基于Boost::beast模块的协程WebSocket客户端
- Editability on SAP Text
- windows键按了没反应_windows快捷键使用 - 小怜
- Pandas 文本数据方法 join( )
- Xcode12.3 、12.4 运行 iOS15 :The code signature version is no longer supported
- 基于51单片机的超声波倒车雷达防撞系统 proteus仿真 LCD1602显示
- 【matlab小白训练】BP神经网络
- python 两个nc文件 风场,ECMWF 不同step 的 NC 文件如何合并
- 一个非常好用的批量图片压缩工具
- 超 3000 个特效镜头,复联 4 是如何「速成」的?
- 多智能体强化学习- COMA
- 【时间序列】时间序列曲线平滑+预测(LSTM)
- 细菌(disease)解题报告 - 搜索与回朔
- 留言滚动栏,html滚动代码,滚动留言代码
- request.getParameter和SpringMVC后台控制层获取参数的方式
- 计算机英语统考试卷分析,英语试卷分析
- 2021全新Java多线程并发入门到精通,一篇就能学会
- python日语识别-编写简单的Python程序来判断文本的语种