Я переписываюсь с mysql на postgres.
Я пытаюсь обновить таблицу EUTMPDFHDT T с таблицей соединений EUTMPDFH T1 и EUTMPTBLDT T2.
Вот код, который я использую в mysql.
UPDATE EUTMPDFHDT
SET NWCOLID=T2.NWCOLID
FROM EUTMPDFHDT T
INNER JOIN EUTMPDFH T1 ON T.DFHID = T1.DFHID AND T1.DFHTYP IN ('D','U','S','P','B')
INNER JOIN EUTMPTBLDT T2 ON T.COLID = T2.COLID
В postgres я пытался следовать этому выражению UPDATE с несколькими объединениями в PostgreSQL
Но безрезультатно, я не могу решить его, поскольку оператор обновления не являетсято же самое.
Вот что я сделал в postgres:
UPDATE EUTMPDFHDT AS T
SET NWCOLID=T2.NWCOLID
FROM
EUTMPDFH T1
JOIN EUTMPTBLDT T2 ON T.COLID = T2.COLID
WHERE T.DFHID = T1.DFHID AND T1.DFHTYP IN ('D','U','S','P','B');
Вот ошибка, с которой я столкнулся
ERROR: invalid reference to FROM-clause entry for table "t"
LINE 5: JOIN EUTMPTBLDT T2 ON T.COLID = T2.COLID
^
HINT: There is an entry for table "t", but it cannot be referenced from this part of the query.
QUERY: UPDATE EUTMPDFHDT AS T
SET NWCOLID=T2.NWCOLID
FROM
EUTMPDFH T1
JOIN EUTMPTBLDT T2 ON T.COLID = T2.COLID
WHERE T.DFHID = T1.DFHID AND T1.DFHTYP IN ('D','U','S','P','B')