MySQL使用另一个表中的值更新一个表中的缺失值

时间:2017-06-27 16:50:07

标签: mysql sql

表1中我有空值:

 DATE_      ID       Sales
2007-01     1        NULL
2007-02     2        100
2007-03     3        200
2007-04     4        NULL

和表2中我有:

 DATE_      ID       Sales
2007-01     1        99
2007-02     2        100
2008-03     3        200
2009-04     4        300

如何使用匹配的DATE_和ID更新表1中的空值。 我用了

update table1 
set table1.sales = table2.sales
where table1.DATE_ = table2.DATE_
and table1.ID = table2.ID

但是我收到了错误代码:1054,未定义列' table2.ID'在' where子句'。 我正在使用MySQL。

2 个答案:

答案 0 :(得分:0)

你可以使用内部joij

  update table1 
  inner join table2 on table1.DATE_ = table2.DATE_ 
     and table1.ID = table2.ID  
     and table1.sales is null 
  set table1.sales = table2.sales

答案 1 :(得分:0)

您可以尝试以下内容:

update table1 set table1.sales = (select table2.sales where table1.DATE_ = table2.DATE_ and table1.ID = table2.ID)