Postgresql 在postgres中使用内部联接两个表来更新列字段,我得到一个错误:table name";TblFacultyMaster";多次指定

Postgresql 在postgres中使用内部联接两个表来更新列字段,我得到一个错误:table name";TblFacultyMaster";多次指定,postgresql,join,sql-update,Postgresql,Join,Sql Update,我得到了这个错误 UPDATE "TblFacultyMaster" SET "TblFacultyMaster".teacher_id = teacher_details.teacher_id FROM teacher_details INNER JOIN "TblFacultyMaster" ON "TblFacultyMaster"."IMR"= teacher_details.primary_reg_no WHERE ("TblFacultyMaster"."IMR" = tea

我得到了这个错误

UPDATE "TblFacultyMaster"
  SET "TblFacultyMaster".teacher_id = teacher_details.teacher_id
FROM teacher_details
  INNER JOIN "TblFacultyMaster" ON "TblFacultyMaster"."IMR"= teacher_details.primary_reg_no
WHERE ("TblFacultyMaster"."IMR" = teacher_details.primary_reg_no); 

请注意,目标表必须而不是出现在from_列表中,除非您打算进行自联接(在这种情况下,它必须在from_列表中以别名出现)

(强调矿山)

因此,只需删除
内部联接
。您还需要删除
集合左侧要更新的列的表前缀

ERROR:  table name "TblFacultyMaster" specified more than once

由于教程中提到了@a_horse_和_no_名称,目标表不应出现在from列表中。但是,您可以通过在from_列表中为表添加别名来实现这一点。我以前做过,它可以工作。

我们需要连接表字段。表是通过
where
子句中的连接连接的。我的答案中的更新有什么问题?你的错误是什么?它是否更新了错误的行?它是否写入了错误的值?错误:关系“TblFacultyMaster”的“TblFacultyMaster”列不存在第2行:设置“TblFacultyMaster”。教师id=教师详细信息。教师。。。现在我得到这个错误啊,复制粘贴错误。不要重复
SET
语句(请参见我的编辑)左侧的表名,但是:您应该避免使用带引号的标识符。他们的麻烦远比他们值得的多。请回答您的问题,并为有问题的表添加
create table
语句,一些语句和基于该数据的预期输出。请您的问题-不要在评论中发布代码或附加信息。
UPDATE "TblFacultyMaster"
  SET teacher_id = teacher_details.teacher_id
FROM teacher_details
WHERE "TblFacultyMaster"."IMR" = teacher_details.primary_reg_no;