Следует избегать двух проблем:
1 - в столбце SET = значение, не добавляйте имя таблицы или псевдоним к column
.Это приводит к ошибке и в любом случае бесполезно, поскольку UPDATE tablename
может обновлять столбцы только с tablename
.Псевдоним tablename может использоваться в других местах, но не в предложении SET.
2 - не повторяйте имя таблицы для обновления в оставшейся части запроса, если только вы не хотите специально вызватьвторичное и некоррелированное сканирование этой таблицы.
Вот мое предложение по измененному запросу, который, я надеюсь, выполняет то, что вы намерены:
UPDATE project_project pp SET create_date =
(select assignments.start_date FROM account_analytic_account LEFT JOIN assignments
ON assignments.accounts_ref = account_analytic_account.id
WHERE
account_analytic_account.id = pp.analytic_account_id);