Usando la respuesta de esta pregunta: Need MySQL INSERT - SELECT query for tables with millions of recordsMySQL en duplicado actualización de clave + sub consulta
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;
necesito esto para trabajar con un grupo de unirte .. así a editar:
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;
Parece que no puedo actualizar el valor. Si especifico old_table.value obtengo un error de lista de campo no definido.
exactamente, ese es el problema – newtover
VALUES() no funciona en mi versión de mysql (5.1.32). Tuve que usar el truco en mi respuesta a continuación. Seguro que me gustaría que VALUES() funcione, es mucho más elegante. – Justin