2011-05-20 56 views
1

我正在維護一箇舊的ASP應用程序(請不要告訴我您對ASP的看法,我已經痛苦地意識到自己),而且我的任務是以方便用戶管理。更新用戶數組(具有相同的用戶名和電子郵件)

用戶表看起來是這樣的:

userID | companyID | loginname | email | endDate | ...

我建立的一些快捷功能,爲用戶的陣列設置的屬性。通常情況下,要設置的SQL例如endDate很簡單:update users set endDate=x where userID in(y)

問題在於同一個用戶可能存在乘法時間,即用戶'David'被註冊爲公司C1,C2和C3的用戶。如果電子郵件和登錄名都相同,則用戶被視爲「相同」。

問:

我怎麼能在同一時間設置爲大衛,麗莎和埃裏克(所有公司)相同的結束日期?

+0

你們是不是要設置相同的'endDate'所有3個用戶? – Gabe 2011-05-20 19:42:14

+0

是的,你的權利。我想我應該指出這一點。 (完成) – David 2011-05-20 19:43:53

回答

1

請試試這個

UPDATE u 
SET endDate=x 
FROM USERS u 
INNER JOIN 
(
    SELECT loginname, email FROM USERS WHERE userID IN (y) 
) a 
ON u.loginname = a.loginname 
AND u.email = a.email 
+0

非常感謝!有用! (我嘗試過使用很多子查詢,但從來沒有得到它的工作)。你的更清潔! – David 2011-05-20 20:13:20

相關問題