如何实现存在多匹配项的两个表Join关联操作
一对多关联Join实现方案
你需要的是标准的一对多关联操作,右表(第二个表)同一个关联键存在多条数据时,左表(第一个表)匹配到的对应条目会自动和右表所有匹配行拼接,最终左表条目重复次数等于右表对应键的匹配总次数。
常见场景实现方式
- SQL场景
使用左连接/内连接即可直接满足需求,示例代码:
SELECT t1.*, t2.* FROM 表1 t1 -- 不需要保留无匹配的左表数据时可替换为INNER JOIN LEFT JOIN 表2 t2 ON t1.关联键字段 = t2.关联键字段;
- Python Pandas场景
调用merge方法指定关联规则即可:
import pandas as pd # df1为表1,df2为表2 res_df = pd.merge(df1, df2, on="关联键字段名", how="left")
how参数改为
inner即可实现内连接效果,过滤掉左表无匹配的条目。
- Spark大数据场景
val resultDf = df1.join(df2, df1("关联键字段名") === df2("关联键字段名"), "left")
内容的提问来源于stack exchange,提问作者Dr. Amresh Nikam
相关产品推荐
相关产品推荐

