我是一个java而不是一个sql开发人员。我已经为此寻找了SO,但由于某种原因无法找到类似WHERE标准的问题
在PostgreSQL中,以下语法不正确
INSERT INTO contentelementtypeprogressortype (contentelementtypeclassname)
SELECT contentelementtypename FROM contentelementtype
WHERE
contentelementtype.id=contentelementtypeprogressortype.contentelementtypeid
错误是:
错误:对表" contentelementtypeprogressortype"的FROM子句条目的无效引用 第2行:... OM contentelementtype其中contentelementtype.id = contentele ... ^ 提示:表" contentelementtypeprogressortype"有一个条目,但不能从查询的这一部分引用它。 **********错误**********
错误:对表" contentelementtypeprogressortype"的FROM子句条目的无效引用 SQL状态:42P01 提示:有一个表" contentelementtypeprogressortype"的条目,但它不能从查询的这一部分引用。 性格:159
答案 0 :(得分:1)
这是您的查询:
INSERT INTO contentelementtypeprogressortype(contentelementtypeclassname)
SELECT cet.contentelementtypename
FROM contentelementtype cet
WHERE cet.id = contentelementtypeprogressortype.contentelementtypeid;
我认为你真的不想要INSERT
- 这会增加一个新行。我想你真的想要一个UPDATE
,它会改变现有行中的值:
UPDATE contentelementtypeprogressortype cetpt
SET contentelementtypeclassname = cet.contentelementtypename
FROM contentelementtype cet
WHERE cet.id = cetpt.contentelementtypeid;