带加入的Postgres RETURNING子句

use*_*159 6 sql postgresql join sql-update

在下面的SQL中,我如何使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 *;
Run Code Online (Sandbox Code Playgroud)

我可以从我的客户端应用程序执行另一个查询,但是我想知道是否有一种方法可以在Postgres中执行此操作,而不必单独向数据库进行往返.

tep*_*pic 10

FROM条款中的任何内容都是公平的游戏RETURNING:

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
;    
Run Code Online (Sandbox Code Playgroud)