在下面的SQL中,如何使该RETURNING子句联接到其他对象并返回联接的行?在这里,它只返回mytable更新后的行,但我希望它返回连接到另一个表中某行的行。
RETURNING
mytable
UPDATE mytable SET status = 'A' FROM ( SELECT myid FROM mytable WHERE status = 'B' ORDER BY mycolumn LIMIT 100 FOR UPDATE ) sub WHERE mytable.myid = sub.myid RETURNING *;
我可以从客户端应用程序中进行另一个查询,但是我想知道是否有一种方法可以从Postgres中进行,而不必进行到数据库的单独往返。
FROM条款中的任何内容均适用于以下方面RETURNING:
FROM
UPDATE mytable SET status = 'A' FROM ( SELECT myid FROM mytable WHERE status = 'B' ORDER BY mycolumn LIMIT 100 FOR UPDATE ) sub JOIN jointable j ON j.id = sub.myid WHERE mytable.myid = sub.myid RETURNING mytable.mycolumn, j.othercolumn ;