You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Access中合并字段不同且存在关联键的两个记录集

错误原因

你之前的查询仅通过ID1字段关联两个表,未将ID2纳入关联条件,当同一个ID1下存在多个不同ID2的记录时,会生成笛卡尔积匹配,最终导致结果要么出现冗余错误行,要么过滤后丢失预期行。

正确实现方案

你可以先提取两个表中所有的(ID1, ID2)组合去重得到完整的键值对集合,再分别左关联两个表取对应数据字段即可,Access环境下可直接执行以下SQL:

SELECT t.ID1, t.ID2, Table_1.Data_1, Table_2.Data_2
FROM 
  (
    SELECT ID1_1 AS ID1, ID2_1 AS ID2 FROM Table_1
    UNION
    SELECT ID1_2 AS ID1, ID2_2 AS ID2 FROM Table_2
  ) AS t
LEFT JOIN Table_1 ON t.ID1 = Table_1.ID1_1 AND t.ID2 = Table_1.ID2_1
LEFT JOIN Table_2 ON t.ID1 = Table_2.ID1_2 AND t.ID2 = Table_2.ID2_2
ORDER BY t.ID1, t.ID2;

逻辑说明

  • 内层查询使用UNION自动对两个表的(ID1,ID2)组合去重,得到所有需要输出的行的主键组合
  • 外层关联两个表时同时匹配ID1和ID2两个字段,可精准获取对应数据,不存在的字段自然返回空值,完全匹配预期输出结果

内容的提问来源于stack exchange,提问作者NewSites

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 00:15:04