Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как Обновить данные в одной таблицы с условием из другой при помощи UPDATE?

Подозрительная Сова Ученик (138), на голосовании 4 года назад
Помогите пожалуйста с SQL! Есть 3 таблицы: Сотрудники, Проекты, Участие в проекте. Нужно при помощи UPDATE выполнить следующее: Увеличить на 20% стоимость проектов, выполняемых сотрудником с самым большим стажем. Как Обновить данные в одной таблице с условием из другой????
Голосование за лучший ответ
lem Мастер (1818) 4 года назад
update T1
set
T1.col = T2.col или value
from Table1 T1
INNER JOIN Table2 T2 on T2.key = T1.Key
WHERE T2.Column = @expression
Jurijus Zaksas Искусственный Интеллект (445813) 4 года назад
Я ХЗ, какая там у тебя RDBMS, но по классике это делается при помощи вложенных запросов:

UPDATE PROJECTS
SET COST=COST*1.2
WHERE PROJECT_ID IN (
SELECT PROJECT_ID FROM PARTICIPATION
WHERE WORKER_ID IN
(SELECT WORKER_ID FROM WOKERS WHERE HIRE_DATE=
(SELECT MIN(HIRE_DATE) FROM WOKERS)
)
)

В каких-то RDBMS допускаются джойны, как показано выше, в Оракле можно существенно сократить такой запрос при помощи аналитических функций, ну а классика - вот так...
Похожие вопросы