История изменений
Исправление Darth_Revan, (текущая версия) :
Ещё я должен отметить, что в общем случае то, который t1.store
будет выбран, фактически определяется лишь тем, который физически лежит ближе к началу. В InnoDB это будет наименьшее значение в случае, если t1.store
– это основной ключ, потому что clustered index.
В общем, для однозначности нужно написать так:
UPDATE t2 SET valid = valid + COALESCE((SELECT valid FROM t1 WHERE store = t2.id ORDER BY store LIMIT 1), 0);
Если желателен, наоборот, последний t1.store
, тогда ORDER BY store DESC LIMIT 1
.
Исходная версия Darth_Revan, :
Ещё я должен отметить, что в общем случае то, который t1.store
будет выбран, фактически определяется лишь тем, который физически лежит ближе к началу. В InnoDB это будет наименьшее значение в случае, если t1.store
– это основной ключ, потому что clustered index.
В общем, для однозначности нужно написать так:
UPDATE t2 SET valid = valid + COALESCE((SELECT valid FROM t1 WHERE store = t2.id ORDER BY store LIMIT 1), 0);
Если желателен, наоборот, последний t1.store
, тогда ORDER BY store DESC
.