当前位置: 首页 > 知识库问答 >
问题:

有一个专栏名为。。。不能从查询子查询的这一部分引用它

闻人英韶
2023-03-14
 WITH upt as (
 UPDATE backend."orders" SET "statusId" = 5
 WHERE "userId" IN (177962,88265) and "statusId" IN (0,1,2,3,4) RETURNING *
)
 INSERT INTO __test_result(orderid) VALUES ((SELECT orderid FROM upt))

需要更新和记录数据,获取此错误

ERROR: column "orderid" does not exist Hint: There is a column named 
"orderid" in table "__test_result", but it cannot be referenced from this part of the query.

如何在表中插入所有“upt”行?一定看起来像

"upt.orderid","jsonb for that orderid"

对于每个订单,必须使用相同的orderid从“upt”列创建jsonb

共有1个答案

曹钊
2023-03-14

如果要使用select作为插入的源(多行),请不要使用values子句,直接使用select:insert-into。。选择

所以在你的情况下:

WITH upt as (
  UPDATE backend."orders" 
     SET "statusId" = 5
  WHERE "userId" IN (177962,88265) 
    and "statusId" IN (0,1,2,3,4) 
  RETURNING *
)
INSERT INTO __test_result(orderid) 
SELECT orderid 
FROM upt;

 类似资料:
  • 因此,我试图使用for循环将python字典中的数据输入postgres数据库。这是密码 我一直在犯错误 回溯(最近一次调用last):文件“C:/Users/Backup/PycharmProjects/gro app/harvest.py”,第123行,cur格式。执行(“插入事实数据(域描述、商品描述、统计描述、聚集级别描述、国家名称、州名称、县名称、单位描述、价值、年份)值(域描述、商品描

  • 我有一张“会议”桌: 我想添加新记录,但前提是它不存在。这就是我使用

  • 我试图学习使用JDBC对PostgreSQL数据库进行更改。我想尝试将数据插入表中。 运行此操作时,我遇到一个错误: 错误:列“column1”不存在 提示:表“my_table”中有一个名为“column1”的列,但不能从查询的这一部分引用它。 如果该列存在于表中,为什么会出现错误?

  • 问题内容: 我有以下查询,该查询通常可以正常工作,并且应该返回涵盖定义时间范围的所有行(如果没有绝对匹配,则采用最接近的前一行和后一行-在http://www.orafaq.com/node/1834中概述) 但是希望通过引用外部选择来减少两个表的子选择,但是显然它不喜欢它 有没有一种方法可以使查询不选择三个表? 问题答案: 您可以通过联接执行以下操作: 我不是MySQL专家,因此如果需要一些语法

  • 问题内容: Java专家能否请您帮我写以下查询作为SQL查询条件查询的一部分。 问题答案: 您需要编写一个相关的子查询。假设属性/类名称与上面的列/表名称匹配:

  • 问题内容: 是否可以在使用MySQL的子查询中引用外部查询?我知道在 某些 情况下这是可能的: 但是我想知道这样的事情是否可以工作: 我知道我可以使用或通过将外部子句拉入子查询来实现相同目的,但是我需要这样做来自动生成SQL,并且由于各种其他原因,不能使用任何一种替代方法。 更新 :对不起,这个问题引起了一些混乱:第一个查询只是一个可行的示例,以演示我 不需要的 东西。 更新2 :我需要两个u.i