【问题标题】:How do I replace from one table in access with the UID from another如何用另一个表的 UID 替换访问中的一个表
【发布时间】:2022-01-01 11:03:24
【问题描述】:

我正在尝试使用我公司收集的所有公民科学家数据清洗并创建一个关系数据库。我对数据库很陌生,但我很努力。基本上,我有一个训练类型表,每个训练类型都有一个 UID,还有一个公民科学家表,每个公民科学家都有一个 UID。我有一个半干净的表,其中包含所有科学家数据,每行都有一个 UID。我想用 Citizen Scientist 表中的 UID 替换所有名字和姓氏列。我还想用训练类型表中的 UID 替换所有训练类型值。我真的不知道从哪里开始。我附上了我的表格的屏幕截图,如果我的小项目中下一步去哪里提供任何帮助,我们将不胜感激。

在此处输入图片说明:

【问题讨论】:

  • 您想填充 ScientistData 表并消除 CitizenScientists?添加一个长整数字段哟 ScientistData。在 Type 字段上构建一个连接 ScientistData 和 TrainingTypes 的查询。将其更改为 UPDATE 查询并使用 TrainingTypes 字段更新 ScientistData 字段。然后可以从 ScientistData 中删除 CertificationType 字段。使用 Access 查询生成器。共同主题和基本功能。建议不要在命名约定中使用空格或标点符号/特殊字符。

标签: sql ms-access database-design


【解决方案1】:

在 June7 之前扩展评论。首先为要链接的每个表添加一个外键到 ScientistData。然后为每个链接表运行更新查询,以将适当的外键值传输到 ScientistData。

'in the SQL pane you can examine the update query
UPDATE CitizenScientists, ScientistData SET ScientistData.CSID = [CitizenScientists].[CSID]
WHERE (((ScientistData.FirstName)=[CitizenScientists].[FirstName]) AND ((ScientistData.LastName)=[CitizenScientists].[LastName]))

转移适当的trainingtypeid:

UPDATE TrainingTypes, ScientistData SET ScientistData.TrainingTypeID = [TrainingTypes].[TrainingID]
WHERE (((ScientistData.CertificationType)=[TrainingTypes].[CertificationType]))

关闭更新查询并双击每一个。 Access 将警告您将要更新表行。然后检查 ScientistData 表,如果一切正常,请删除 ScientistData 表中现在不需要的列。
最后更新数据库关系。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-26
    • 2021-01-01
    • 1970-01-01
    相关资源
    最近更新 更多