admin

使用另一个表作为信息查询更新表?

sql

我有两个表,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

(在我刚进入前四名的实际一栏中,还有很多列)

我缺少Staff表内的工资,而员工表中需要的工资是表中的工资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`)

谢谢。


阅读 128

收藏
2021-06-07

共1个答案

admin

我只需要将表保持其规范化状态(不带wageStaff),并在需要完整的(非规范化)数据集的任何时候运行此查询:

SELECT s.id, s.name, s.jobID, w.wage
FROM Staff s
LEFT OUTER JOIN Wages w ON s.jobID = w.jobID
2021-06-07