Как исправить запрос MySql?
и дубликатов по идее быть не можетПочему не может? Вы раз в сутки копируете сообщения за двое суток. Дубли просто обязаны появиться.
Александр, решается довольно просто:INSERT INTO table1 (column1, column2, column3, ...)
   SELECT t2.column1,  t2.column2, t2.column3, ...
   FROM table2 t2
   WHERE condition
ON DUPLICATE KEY UPDATE
   column2 = VALUES(column2),
   column3 = VALUES(column3),
   ...
;