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

标签 sql

我有两个表,StaffWages

人员包含

 id,   name,     jobID,   wage
  1   Name1       2        
  2   Name2       4      
  3   Name3       1      
  4   Name4       2      

工资包含

 JobID, Wage
   1    1500
   2    800
   3    1600
   4    2000

(实际的栏目多了很多我刚拿了前4)

我缺少Staff表中的工资,而我在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`)

谢谢。

最佳答案

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

关于sql - 使用另一个表作为信息查询更新表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13266299/

相关文章:

mysql - 查询 sql 以与 python 一起使用

sql - 如何解决Golang中的错误 "ORA-00911: invalid character"?

mysql - 内连接语法错误

sql - Count(*) with order by not working on PostgreSQL which works on Oracle

php - 使用 php + zend 测量单位的良好数据库模式?

sql - 如果在 postgres 中找不到记录,如何设置默认值

tsql - SQL:在单个SELECT语句中使用多个值

sql - 使用 Oracle/SQL group by 查找最大值

mysql - 我怎样才能以逗号分隔列表的形式获得子值?

sql - 营业时间数据库设计