如何在Access中将目标表字段值替换为另一关联表的对应UID
操作指南
- 先确认关联字段规则
首先核对公民科学家表是否存在名字、姓氏字段和对应的公民科学家UID,且名字+姓氏组合可唯一确定一条公民科学家记录;同时核对培训类型表是否存在培训类型名称字段和对应的培训类型UID,且培训类型名称无重复。如果存在重名情况,需要先补充其他区分字段(比如手机号、注册时间)完成去重,再做后续匹配。 - 半清洗表新增关联UID字段
不要直接覆盖原始的文本字段,避免匹配错误无法回溯原始数据,先新增两个关联字段,以MySQL为例执行SQL:ALTER TABLE 半清洗数据表 ADD COLUMN 公民科学家UID INT COMMENT '关联公民科学家表的唯一ID', ADD COLUMN 培训类型UID INT COMMENT '关联培训类型表的唯一ID'; - 更新公民科学家UID字段
通过多表关联更新匹配到的UID:
执行完成后检查未匹配到的记录,方便后续补录数据:UPDATE 半清洗数据表 s INNER JOIN 公民科学家表 u ON s.名字 = u.名字 AND s.姓氏 = u.姓氏 SET s.公民科学家UID = u.公民科学家UID;SELECT * FROM 半清洗数据表 WHERE 公民科学家UID IS NULL; - 更新培训类型UID字段
同样通过关联更新匹配培训类型UID:
执行完成后检查未匹配记录:UPDATE 半清洗数据表 s INNER JOIN 培训类型表 t ON s.培训类型 = t.培训类型名称 SET s.培训类型UID = t.培训类型UID;SELECT * FROM 半清洗数据表 WHERE 培训类型UID IS NULL; - 最终校验
随机抽查20~50条记录确认UID匹配正确后,可根据需求决定是否删除原始的名字、姓氏、培训类型文本字段,建议保留原始字段作为备份,方便后续校验。
内容的提问来源于stack exchange,提问作者null
相关产品推荐
相关产品推荐

