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

MS Access查询name与score表出现数据重复,如何修改SQL代码解决

问题原因

你当前使用的SQL语句采用隐式交叉连接(FROM name, score无关联条件),会生成两个表所有行的笛卡尔积:即name表的每一行都会和score表的所有行逐一匹配,最终数据量是两个表行数的乘积,哪怕加了DISTINCT也无法解决关联逻辑错误导致的重复问题。

解决方法

两个表需要通过共同的关联字段绑定数据,通常name表会存储人员基础信息,带主键类的唯一标识字段(比如用户ID、学号),score表会存储对应人员的成绩,带同名字段作为外键关联。
修改后的SQL参考如下,你需要替换示例中的关联字段为你表中实际的共同标识字段即可:

SELECT score.score, name.Name
FROM name 
INNER JOIN score 
ON name.你的关联字段名 = score.你的关联字段名;
补充说明
  • 如果关联后存在完全重复的行,再保留DISTINCT关键字即可,正常关联正确的情况下不需要额外去重
  • 如果你需要输出所有name表的人员信息,哪怕该人员没有对应成绩,将INNER JOIN替换为LEFT JOIN即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:36:05