Извиняюсь за то, что я довольно новичок в SQL, но мне интересно, возможно ли объединить две таблицы в операторе Update, при этом источник столбца будет фактически обновлен из третьей таблицы , Например, допустим, у меня есть простая таблица «emp» ( emp_unid , first_name, last_name, mgr_unid), таблица «dept» ( dept_unid , dept_name) и третья » ссылка "таблица ( link_id , emp_unid, dept_unid).
Компания решает перевести всех сотрудников с фамилией" Фергюсон "или" Мэлоун "из отдела экспорта в отдел импорта, поэтому нам нужно обновить соответствующие записи в таблице «link», используя emp_unids из «emp» и используя соответствующий dept_unid из «dept».
Теоретически, я бы хотел написать оператор обновления что-то вроде ниже:
UPDATE link l, emp e
SET l.dept_unid = (SELECT dept_unid FROM dept
WHERE dept_name = 'IMPORTS')
WHERE l.emp_unid = e.emp_unid
AND e.last_name IN ('FERGUSON', 'MALONE')
Я попытался перевернуть предложение WHERE до предложения SET, я попытался использовать явное объединение, я попытался написать это полностью без псевдонимов, но я не могу ' я не могу это сделать - я продолжаю получать "ORA-00971: отсутствует ключевое слово SET". Из того, что я прочитал / экспериментировал, Oracle не похоже на обновление нескольких таблиц в одном операторе, но на самом деле я просто пытаюсь обновить одну таблицу, ссылаясь на две другие таблицы.
Я упускаю что-то простое или есть более умный способ выполнить sh это?