【发布时间】:2019-02-23 03:46:41
【问题描述】:
我正在做从 mysql 到 postgres 的对话。
我尝试使用连接表 EUTMPDFH T1 和 EUTMPTBLDT T2 更新表 EUTMPDFHDT T。
这是我在 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 statement with multiple joins in 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')
【问题讨论】:
标签: sql postgresql sql-update inner-join