2017-10-16 79 views
0

嗨,我在访问数据库中有两个表,分别标记为'Contacts''StatusList'

StatusList由一列和四列标记的:如何使用SQL查询从另一个表中更新下拉列表中的字段

状态说明
可疑
展望
询价
申请人

联系由以下部分组成:

名姓电子邮件状态电话

Contacts(联系人)中的Status(状态)字段是一个下拉框,从StatusList表格中反馈。 “联系人”表中的每一行最初都设置为“可疑”。

通讯录中的电子邮件字段设置为仅允许唯一的电子邮件。

我有一个名为ExcelImport的表格,它与Contacts表格具有相同的字段。

最后,我想将我的ExcelImport表中的数据插入联系人。如果ExcelImport和联系人之间存在电子邮件匹配,我希望“联系人”中的“状态”字段中的行从“可疑”更新为“展望”。

到目前为止,我有这样的:

SELECT Contacts.contactEmail 
FROM Contacts 
Inner Join ExcelImport on Contacts.contactEmail = ExcelImport.contactEmail; 

我知道这只能说明我匹配的电子邮件。是否有任何方法可以更新与Prospect相匹配的特定行的状态列表?

+0

您需要使用更新“查询”,而不是选择查询。此外,StatusList表用于填充下拉列表似乎并不重要,因为实际问题是关于使用匹配的电子邮件字段从另一个表更新一个表。 –

回答

1

如前所述,只需更改UPDATE操作查询的值,并且下拉菜单也会相应更改。如果我理解你的下拉列表只是一个查找组合框,你可能在表设计中设置。它只是帮助控制输入的值。该UPDATE查询将改变下拉为表变化值:

UPDATE Contacts INNER JOIN ExcelImport 
    ON Contacts.contactEmail = ExcelImport.contactEmail 
SET Contacts.[Status] = 'Prospect'; 

另外,你提到我想插入从我ExcelImport表联系人的数据,你可以这样做保留了的独特性电子邮件字段通过在追加查询中运行NOT EXISTS 子句。

INSERT INTO Contacts ([First], [Last], [Email]], [Status], [Phone]) 
SELECT e.[First], e.[Last], e.[Email]], e.[Status], e.[Phone] 
FROM ExcelImport e 
WHERE NOT EXISTS 
    (SELECT 1 FROM Contacts c WHERE c.[Email] = e.[Email]) 

因此,同时运行操作查询导入独特电子邮件和重复电子邮件,更新状态

相关问题