是否可以同時更新多行?一次更新多行
以下查詢返回當前部門的信息,員工正在處理。
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 row in somerows:
UPDATE facttable SET deparment = row[1] WHERE empID = row[0]
...
,但我想知道是否有可能一次更新所有這些值而不使用循環。
編輯:
我有一個表。我需要查詢同一張表。此表與任何其他表都沒有關係。 表結構是:
Table Name : Employee
Fields: EmpID varchar
DeptID varchar
myDate date
如果我理解正確的話,這將導致你,你將設置EMPID 1部1(第一條記錄)的問題,然後做與DEP類似的更新。 2和3。我看不到這方面的優勢。如果最後的設置應該贏,那麼考慮觸發器可能是一個想法。 –
我可以問你爲什麼要這麼做? –