История изменений
Исправление Darth_Revan, (текущая версия) :
Как-то так:
START TRANSACTION;
UPDATE t2 SET valid = valid + COALESCE((SELECT valid FROM t1 WHERE store = t2.id ORDER BY id LIMIT 1), 0);
UPDATE t1 SET valid = 0 WHERE id IN (SELECT MIN(id) FROM t1 GROUP BY store);
COMMIT;
Но есть нюанс, и он ровно в том, что нужен identity в t1, чтобы можно было отличить те кортежи/поля, из которых значения были взяты, от тех, откуда не были.
Вообще, если нужно их вообще все взять из t1 и записать в t2, то вот это, как раз, сделать легко:
START TRANSACTION;
UPDATE t2 SET valid = valid + COALESCE((SELECT SUM(valid) FROM t1 WHERE store = t2.id GROUP BY store), 0);
UPDATE t1 SET valid = 0;
COMMIT;
Исправление Darth_Revan, :
Как-то так:
START TRANSACTION;
UPDATE t2 SET valid = valid + COALESCE((SELECT valid FROM t1 WHERE store = t2.id ORDER BY id LIMIT 1), 0);
UPDATE t1 SET valid = 0 WHERE id IN (SELECT MIN(id) FROM t1 GROUP BY store);
COMMIT;
Но есть нюанс, и он ровно в том, что нужен identity в t1, чтобы можно было отличить те кортежи/поля, из которых значения были взяты, от тех, откуда не были.
Исходная версия Darth_Revan, :
Как-то так:
UPDATE t2 SET valid = valid + COALESCE((SELECT valid FROM t1 WHERE store = t2.id ORDER BY id LIMIT 1), 0);
UPDATE t1 SET valid = 0 WHERE id IN (SELECT MIN(id) FROM t1 GROUP BY store);
Но есть нюанс, и он ровно в том, что нужен identity в t1, чтобы можно было отличить те кортежи/поля, из которых значения были взяты, от тех, откуда не были.