簡體   English   中英

使用另一個表作為信息查詢更新表?

[英]Query to Update Table using another table as information?

我有兩張桌子, StaffWages

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表中我需要的WagesWages表中的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

我只是將它們保持原樣(沒有Staffwage列),處於規范化狀態,並在需要完整的(非規范化)數據時隨時運行此查詢:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM