[英]Query to Update Table using another table as information?
我有兩張桌子, Staff
和Wages
Staff
包含
id, name, jobID, wage
1 Name1 2
2 Name2 4
3 Name3 1
4 Name4 2
Wages
包含
JobID, Wage
1 1500
2 800
3 1600
4 2000
(實際上有很多列我剛剛進入前4名)
我錯過了Staff
表內的工資, Staff
表中我需要的Wages
是Wages
表中的Wages
。
所以我需要一個查詢,使Staff
表看起來像:
id, name, jobID, wage
1 Name1 2 800
2 Name2 4 2000
3 Name3 1 1500
4 Name4 2 800
我嘗試的一個示例查詢是:
UPDATE `Staff`
SET wage = (SELECT wage FROM `Wages`)
WHERE jobID = (Select jobId FROM `Wages`)
謝謝。
在MySQL
,
UPDATE Staff a
INNER JOIN Wages b
ON a.jobID = b.JobID
SET a.wage = b.wage
在MSSQL
,
UPDATE a
SET a.wage = b.wage
FROM Staff a
INNER JOIN Wages b
ON a.jobID = b.JobID
我只是將它們保持原樣(沒有Staff
的wage
列),處於規范化狀態,並在需要完整的(非規范化)數據時隨時運行此查詢:
SELECT s.id, s.name, s.jobID, w.wage
FROM Staff s
LEFT OUTER JOIN Wages w ON s.jobID = w.jobID
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.