2017-10-16 82 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]) 

因此,同時運行操作查詢導入獨特電子郵件和重複電子郵件,更新狀態

相關問題