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

时间:2012-04-30 00:42:20

标签: php sql postgresql

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

错误:表名“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

1 个答案:

答案 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语句中......我可能会遗漏一些东西。)

相关问题