更新主表以将“电子邮件”字段替换为另一个“电子邮件地址”表中的电子邮件 ID

问题描述 投票:0回答:1

我有两张桌子, 主表是客户列表及其联系信息。 我想做的是将“电子邮件”字段分隔到一个单独的表中,以便我可以将两者关联起来,因为某些客户使用相同的电子邮件地址。 我创建了另一个名为“电子邮件地址”的表,其中仅包含唯一的电子邮件,我现在想使用“电子邮件地址”表中的电子邮件 ID 更新主表,但在 SQL 查询方面遇到了问题。

我已经研究并找到了解决方案,但它对我不起作用。它出现“缺少操作员”错误。

UPDATE [Main Table]
SET [Main Table].Email = [Email Addresses].ID
FROM [Main Table]
INNER JOIN [Email Addresses] ON [Main Table].Email = [Email Addresses].Email;

更有意义的是,尽管我知道这行不通:

UPDATE [Main Table]
SET [Main Table].Email = [Email Addresses].ID
WHERE [Main Table].Email = [Email Addresses].Email;

只是 SQL 新手,仍在 MS Access 中摸索

sql ms-access join sql-update subquery
1个回答
0
投票

尝试以下步骤:

  • 将字段
    [Email Addresses].[Id]
    更改为 AutoNumber(数字或 GUID)
  • 添加数据类型为数字或的字段
    [Main Table].[EmailId]
    GUID 与上面的 Id 匹配
  • 运行此查询:
UPDATE 
    [Main Table] 
INNER JOIN 
    [Email Addresses] 
    ON [Main Table].Email = [Email Addresses].Email 
SET 
    [Main Table].EmailId = [Email Addresses].Id;
  • 删除字段
    [Main Table].Email
© www.soinside.com 2019 - 2024. All rights reserved.