Я не понимаю: я сказал, что правильным результатом будет обновление или 32 строки вместо 8 для этого root_id.
конечно import.tmp_kk
содержит более lo_id
для одного root_id
, на целевой таблице proj_los
, lo_root_id
будет FK для lo_id
.
Что касается документации postgres, мне кажется, что она говорит, по сути, чтобы убедиться, что нет дубликатовв таблице результатов объединения:
"При использовании FROM необходимо убедиться, что объединение создает не более одной выходной строки для каждой строки, подлежащей изменению."
, поэтому я проверил:
with tmp_joinres as (
select oko.lo_id, gg.root_id
from proj_los oko
full outer join import.tmp_kk gg on oko.lo_id = gg.lo_id
)
select tmp_joinres.lo_id, tmp_joinres.root_id, count(*)
from tmp_joinres
group by tmp_joinres.lo_id, tmp_joinres.root_id
having count(*) > 1;
но результатов нет:
[2018-10-05 21:58:20] 0 rows retrieved in 5 s 737 ms (execution: 5 s 729 ms, fetching: 8 ms)
Скажите, пожалуйста, как вы или кто-то еще можете изменить выражение UPDATE, чтобы получить правильный результат?
Спасибо