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()
等连接聚合函数处理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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)