在这个社区的帮助下,我能够使用内部联接产生查询,我认为这种内部联接可以满足我的尝试。不幸的是,当我尝试运行下面的查询时,收到以下错误:
错误:表名“ 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
在PostgreSQL中,仅在UPDATE子句中指定要更新的表即可,例如UPDATE bue。FROM子句仅用于查询中引用的 其他 表。(如果您在上进行自bue联接,则可以在FROM子句中再次提及它,但是在这种情况下就不行了。)
UPDATE bue
bue
您得到的第二个错误可能只是一个简单的语法错误。另一个棘手的事情是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语句中……我可能会丢失一些东西。)