Post date: Jan 6, 2011 5:03:42 PM
If we want to insert new entries from other table
INSERT INTO stat (date, id, v, c, r)
SELECT date, id, sum(v), sum(c), sum(r) FROM stat2
group by date, id ;
If we want to update some columns from values obtained from other column
update stat s, (SELECT date(datetime) as date, id,
sum(IF(status='good', value, 0)) as v_g, sum(IF(status='good', 1, 0)) as c_a,
sum(IF(status='bad', value, 0)) as v_b, sum(IF(status='bad', 1, 0)) as c_p
FROM stat2
group by id, date) as t
SET s.good = t.v_g, s.good_count = t.c_a,
s.bad = t.v_b, s.bad_count = t.c_p
WHERE s.date = t.date AND t.id = s.id;
Unfortunatly I don't find a way how to insert from table and on duplicate key update from t table without temporary table =( Or I misunderstand smth. =)