小编jwz*_*wzk的帖子

关于重复密钥更新+子查询的Mysql

使用这个问题的答案:需要MySQL INSERT - SELECT查询具有数百万条记录的表

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;
Run Code Online (Sandbox Code Playgroud)

我需要这个与group by一起工作并加入..所以编辑:

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;
Run Code Online (Sandbox Code Playgroud)

我似乎无法更新值.如果我指定old_table.value,我得到一个未定义的字段列表错误.

mysql upsert

5
推荐指数
2
解决办法
5774
查看次数

标签 统计

mysql ×1

upsert ×1