Здравствуйте.
Мне "не хватает" оператора "UPDATE JOIN".
Подскажите, как правильнее сделать:
Пусть есть таблица Table1:
Код:
Table1:
id | value
1 | 5
2 | 7
3 | 10
Также есть таблица дельт, на которые нужно изменить столбец value, ID - foreign key к Table1:
Код:
TableDelta:
ID | Delta
1 | 1
2 | -3
3 | 5
Хотелось бы так одним запросом обновить Table1, чтобы прибавились соответствующие значения и получилось соответственно:
Код:
Table1:
id | value
1 | 6
2 | 4
3 | 15
Пока вижу только вариант с коррелирующими подзапросами на каждую строку в запросе:
Код:
UPDATE Table1 t1
SET value = value + (SELECT SUM(Delta) From TableDelta td WHERE td.ID = t1.ID)
Но в данном случае будет на каждую строку подзапрос. Объединение по двум индексированным полям должно быть на порядок быстрее и легче для сервера...
Есть мысли как это сделать элегантнее?