小编典典

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

sql

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

错误:表名“ bue”指定了多次


从我在Google上阅读的内容来看,有人说不需要“ 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

阅读 135

收藏
2021-05-16

共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。

(注意:至少我不知道如何将JOIN / ON放入UPDATE语句中……我可能会丢失一些东西。)

2021-05-16