Тема: SQL: JOIN UPDATE
Показать сообщение отдельно
Старый 22.01.2007, 17:15     # 1
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
SQL: JOIN UPDATE

Здравствуйте.

Мне "не хватает" оператора "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)
Но в данном случае будет на каждую строку подзапрос. Объединение по двум индексированным полям должно быть на порядок быстрее и легче для сервера...

Есть мысли как это сделать элегантнее?
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума