You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PostgreSQL的UPDATE中结合JOIN返回关联表字段?

解决PostgreSQL更新后返回关联表字段的问题

你可以通过**CTE(公共表表达式)**先捕获更新后的entradas记录,再关联actores表获取需要的字段,具体写法如下:

WITH updated_entradas AS (
    UPDATE entradas
    SET vendida = false
    WHERE ticket_id - 1134 = 101
    RETURNING ticket_id, vendida, user_id
)
SELECT 
    u.ticket_id - 1134 AS numero_entrada,
    u.vendida,
    a.name,
    a.fecha
FROM updated_entradas u
JOIN actores a ON u.user_id = a.user_id;

逻辑说明

  1. 先通过WITH子句里的UPDATE语句更新entradas表的vendida字段,同时返回更新后的ticket_id、vendida和关联需要的user_id;
  2. 再将捕获到的更新记录与actores表通过user_id关联,查询出你需要的name和fecha字段。

原来的写法无法直接返回actores表字段,是因为RETURNING子句只能直接引用被更新表的字段,不能直接跨表引用未关联的其他表字段。这种CTE的方式既完成了更新操作,又能灵活关联其他表获取所需数据。

内容的提问来源于stack exchange,提问作者Ana Cruz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 17:35:18