从这个问题使用了答案:Need MySQL INSERT - SELECT query for tables with millions of recordsMySQL在重复键更新+子查询
new_table
* date
* record_id (pk)
* data_field
INSERT INTO new_table (date,record_id,data_field)
SELECT date, record_id, data_field FROM old_table
ON DUPLICATE KEY UPDATE date=old_table.data, data_field=old_table.data_field;
我需要这与一组工作,并加入..所以编辑:
INSERT INTO new_table (date,record_id,data_field,value)
SELECT date, record_id, data_field, SUM(other_table.value) as value FROM old_table JOIN other_table USING(record_id) GROUP BY record_id
ON DUPLICATE KEY UPDATE date=old_table.data, data_field=old_table.data_field, value = value;
我似乎无法获得更新的价值。如果我指定old_table.value,我得到一个未定义的字段列表错误。
确切地说,那就是问题 – newtover 2010-05-02 22:21:25
VALUES()在我的mysql版本(5.1.32)上不起作用。我不得不在下面的答案中使用这个技巧。我确实希望VALUES()能够工作 - 它更加优雅。 – Justin 2011-08-25 11:41:46