PostgreSQL 数据库 - 内部联接查询错误


PostgreSQL Database - Inner Join Query Error

在这个社区的帮助下,我能够使用内部连接生成一个查询,我认为该查询适用于我正在尝试做的事情。 不幸的是,当我尝试运行下面找到的查询时,我收到以下错误:

错误:多次指定表名"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 放入更新语句中......我可能错过了一些东西。