在这个社区的帮助下,我能够使用内部连接生成一个查询,我认为该查询适用于我正在尝试做的事情。 不幸的是,当我尝试运行下面找到的查询时,我收到以下错误:
错误:多次指定表名"bue"
从我在谷歌上读到的内容来看,有些人说不需要"FROM bue",但是当我删除它时,我得到了另一个错误,发现如下:
错误:字符 98 处的"内部"处或附近出现语法错误
我非常感谢您协助解决此问题。非常感谢。
查询:
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
在 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。
(注至少我不知道如何将 JOIN/ON 放入更新语句中......我可能错过了一些东西。