在这个社区的帮助下,我能够使用内部联接生成一个查询,我认为它可以用于我正在尝试的内容。不幸的是,当我尝试运行下面的查询时,我收到以下错误:
错误:表名“bue”指定了多次
根据我在谷歌上所读到的,有些人说不需要“FROM bue”,但是当我删除它时,我发现下面发现了另一个错误:
错误:字符98处“INNER”处或附近的语法错误
非常感谢您协助解决此问题。非常感谢你。
查询:
UPDATE
bue
SET
rgn_no = chapterassociation.rgn_no,
chp_cd = chapterassociation.chp_cd
FROM
bue
INNER JOIN
chapterassociation
ON bue.work_state = chapterassociation.work_state
AND bue.bgu_cd = chapterassociation.bgu_cd
WHERE
bue.mbr_no IS NULL AND bue.chp_cd IS NULL
答案 0 :(得分:1)
在PostgreSQL中,指定要更新的表只需要在UPDATE子句中完成,例如: UPDATE bue
。 FROM子句仅适用于查询中引用的其他表。 (如果你在bue
上进行自我加入,你会在FROM子句中再次提及它,但你不是这种情况。)
您获得的第二个错误可能只是一个简单的语法错误。另一个棘手的问题是JOIN / ON语法不适合FROM子句,因此您必须将连接条件移动到WHERE子句。尝试类似:
UPDATE
bue
SET
rgn_no = chapterassociation.rgn_no,
chp_cd = chapterassociation.chp_cd
FROM
chapterassociation
WHERE
bue.mbr_no IS NULL AND bue.chp_cd IS NULL
AND bue.work_state = chapterassociation.work_state
AND bue.bgu_cd = chapterassociation.bgu_cd
请参阅http://www.postgresql.org/docs/current/interactive/sql-update.html。
(N.B。至少我不知道怎么把JOIN / ON放到UPDATE语句中......我可能会遗漏一些东西。)