Access表格更新:基于关联列用Name值替换ID列内容
在Access中将表2的ID替换为表1对应Name的解决方案
嘿,这个需求其实用Access的查询就能轻松实现,分两种场景给你说明:
场景1:只需要查看/导出结果(不修改原始表)
这是最安全的方式,不会改动你的原始数据,直接通过查询生成想要的格式:
- 打开Access,新建一个查询设计
- 在弹出的“显示表”窗口中,把你的两个表都添加进去,Access会自动根据
ID字段建立关联(如果没自动关联,手动拖表1的ID到表2的ID即可) - 在字段选择区:
- 选择表2的
Age和Gender字段 - 选择表1的
Name字段,然后在该字段的“别名”栏输入ID(这样查询结果里这个列就会显示为ID)
- 选择表2的
- 点击运行按钮,就能得到你想要的结果:
AAAA | 15 | F、CCCC | 18 | M这类行
如果你习惯直接写SQL,也可以用这段代码(记得把表1和表2换成你实际的表名):
SELECT t1.Name AS ID, t2.Age, t2.Gender FROM 表1 AS t1 INNER JOIN 表2 AS t2 ON t1.ID = t2.ID;
场景2:要实际修改表2的ID列内容(谨慎操作)
如果你确实需要把表2的ID字段内容直接替换成对应Name,要注意几个前提:
- 表2的
ID字段不能是自动编号类型(如果是,先改成短文本/文本类型) - 表2的
ID字段没有外键关联(如果有,先删除关联再操作)
操作步骤:
- 新建一个更新查询(设计视图)
- 添加两个表并关联
ID字段 - 选择表2的
ID字段,在“更新到”栏输入[表1].[Name] - 点击运行,确认更新的行数后完成替换
对应的SQL代码:
UPDATE 表2 INNER JOIN 表1 ON 表2.ID = 表1.ID SET 表2.ID = [表1].[Name];
⚠️ 注意:更新原始表前最好先备份数据,避免误操作导致数据丢失。
内容的提问来源于stack exchange,提问作者KEnzo
相关产品推荐
相关产品推荐

