【发布时间】:2020-11-19 16:55:54
【问题描述】:
我有一个如下所示的 postgresql 查询:
update service_requests
set service_request_status = 'Rejected', modified_on = now()
where service_request_id = $1 and service_request_status = 'Submitted'
returning
(select service_request_id, service_request_status, requestor_id
from service_requests
where service_request_job_uuid in
(select service_request_job_uuid from service_requests where service_request_id = $1)
)
我收到一个错误:子查询必须只返回一列
但我至少需要返回三个:service_request_id、service_request_status、requestor_id。并且它们需要从被更新的记录所属的一组记录中返回。
这个想法是这样的:用户向一个或多个我们称之为“专业人士”的“专业人士”提交服务请求。这些专业人士对服务请求进行投标。每个专业人士的数据库中都有一行,它们按 service_request_job_uuid 列分组在一起。在专业人士拒绝服务请求的情况下,将运行此查询。我们想返回该服务请求对应的所有记录,看看是否还有其他专业人士尚未拒绝该服务请求。
但是如果我在第一个嵌套选择中不能选择多个列,我该如何返回我需要的信息呢?
谢谢。
【问题讨论】:
标签: sql postgresql sql-update subquery sql-returning