【发布时间】:2019-04-22 23:08:47
【问题描述】:
我使用 PgAdmin4 开发了一个 PostGIS 数据库。 我试图用另一个名为“zones_cultures”的表中的另一列(名为“surface_cultures”)的总和来更新名为“parcelles”的表中的一列(名为“surface_net”)。表“zones_cultures”有一个带有“parcelles”的外键(“zones_cultures.id_parcelles”=“parcelles.id_egrid”)。
综上所述,“surface_net”列是“id_egrid”对“zones_cultures”组的总和。
所以我做了这个 SQL 查询来更新列“surface_net”:
UPDATE public.parcelles
SET surface_net=
(SELECT sum(zones_cultures.surface_cultures)
FROM parcelles inner join zones_cultures on parcelles.id_egrid = zones_cultures.id_parcelles
group by parcelles.id_egrid);
但它不起作用。结果如下:
ERROR: more than one row returned by a subquery used as an expression
SQL state: 21000
有人可以帮助我处理我的 SQL 查询以更新“surface_net”列吗? 提前致谢
【问题讨论】:
-
跳过 GROUP BY
-
向我们展示数据库架构、示例数据、当前和预期输出。请阅读How-to-Ask 这里是START 了解如何提高问题质量并获得更好答案的好地方。 How to create a Minimal, Complete, and Verifiable example
标签: sql postgresql sql-update qsqlquery postgresql-11