Можно ли обновить несколько строк одновременно?
Следующий запрос возвращает информацию о текущем отделе, над которым работает сотрудник.
SELECT a.empID, a.deparmentID
FROM customer a
INNER JOIN (
SELECT f.empID, max(f.myDate) md
FROM customer f
GROUP BY f.empID
) z ON z.empID = a.empID AND z.md = a.myDate
Например, вот пример моей таблицы:
empID deparmentID myDate
1 1 2011-01-01
2 1 2011-02-10
3 2 2011-02-19
1 2 2011-03-01
2 3 2011-04-01
3 1 2011-05-10
1 3 2011-06-01
Таким образом, приведенный выше запрос вернется,
empID departmentID
1 3
2 3
3 1
Теперь, основываясь на этих возвращаемых значениях, я хочу обновить свою таблицу за один раз.
В настоящее время я обновляю эти значения по одному, используя цикл for (очень медленный по производительности),
мой запрос на обновление:
for row in somerows:
UPDATE facttable SET deparment = row[1] WHERE empID = row[0]
...
но я хочу знать, возможно ли обновить все эти значения сразу, без использования цикла.
EDIT:
У меня есть один стол. И мне нужно запросить ту же таблицу. Эта таблица не имеет отношения к каким-либо другим таблицам.
Структура таблицы:
Table Name : Employee
Fields: EmpID varchar
DeptID varchar
myDate date