Обновление массива пользователей (имеющих одинаковые имя пользователя и адрес электронной почты) - PullRequest
1 голос
/ 20 мая 2011

Я поддерживаю старое приложение ASP (пожалуйста, не говорите мне, что вы думаете об ASP, я уже мучительно осознаю себя), и мне поручено упростить администрирование пользователей.

Таблица пользователя выглядит следующим образом:

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

Я создал несколько сокращенных функций для установки свойств для массива пользователей. Обычно SQL для установки, например, endDate прост: update users set endDate=x where userID in(y)

Проблема заключается в том, что один и тот же пользователь может существовать многократно, т.е. пользователь «Дэвид» зарегистрирован в качестве пользователя для компаний C1, C2 и C3. Пользователь считается "одним и тем же", если адрес электронной почты и имя пользователя совпадают.

Вопрос:

Как я могу установить одинаковую конечную дату для Дэвида, Лизы и Эрика (для всех компаний) одновременно?

1 Ответ

1 голос
/ 21 мая 2011

Пожалуйста, попробуйте это

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
...