HIVE LEFT JOIN的坑

最近在做一个数据关联处理分析需求,涉及left表right表LEFT JOIN,发现LEFT JOIN后的结果条数比left表的记录多不少。

于是查看结果明细发现最终的结果,不少都是重复的。

最终确定是left 表和right表是一对多的关系,或者说right表有重复的记录也是一样的效果。

于在本地mysql中创建了两个测试表left_join_test和joinids_test测试,如下:

 

 

 

最终结果:

 

 

总结:

1、mysql的left join从两个表中联合查询数据,以左表为主,右表为辅。如果左表中有的内容右表中没有,则用null填充,这是大家都很容易理解的。

2、右边有重复数据(多条数据对应左边表一条数据)时,右边的数据会全部保留,导致最终的结果出现重复关联。这时就要根据实际情况把右表的记录去重,比如使用distinct 、group by 等处理,最终结果也可以使用GROUP_CONCAT()、count()等连接聚合函数处理

 

posted @   xuzhujack  阅读(2814)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
;
点击右上角即可分享
微信分享提示