使用mysql回填数据

时间:2011-11-02 23:44:07

标签: mysql sql join subquery

嗨,我有一张看起来像这样的表:

Date ID Value
1/1/2011 id1 10
1/2/2011 id1 NULL
1/3/2011 id1 20
1/1/2011 id2 20
1/3/2011 id2 NULL
1/4/2011 id2 30

我的任务是转发填写每个id和日期的值,直到知道新值。例如,我想在id1上插入值1的2011年1月,在id3的2011年1月3日插入值20。我正在使用mysql。对此的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

在mysql中,确实没有任何超级有效的方法来实现这一点(我能想到)但是可以使用相关的子查询来完成:

UPDATE table 
    SET value = (SELECT value 
                 FROM Table AS T1 
                 WHERE T1.ID = table.ID 
                     and t1.DATE <= table.Date 
                 LIMIT 1)
WHERE table.Value IS NULL; 

这假设我正确地解释了逻辑。如果这是正确的想法,请告诉我。