回答

收藏

带连接的Postgres RETURNING子句

技术问答 技术问答 151 人阅读 | 0 人回复 | 2023-09-12

在下面的SQL中间,怎么做RETURNING连接到其他对象并返回连接的行?在这里,它只返回mytable更新后的行,但我希望它能返回连接到另一行的行。8 q8 Y8 S0 Q' k& ?7 R/ [
UPDATE mytableSET    status = 'A' FROM  (  SELECT myid   FROM   mytable   WHERE  status = 'B'   ORDER BY mycolumn   LIMIT  100   FOR   UPDATE   ) subWHERE  mytable.myid = sub.myidRETURNING *;我可以从客户端应用程序中进行另一个查询,但我想知道是否有一种方法可以从Postgres不需要单独往返数据库。$ }: O$ H/ O1 g& _
                                                               
, D& q# ]1 t! \& C1 e1 D( v; o+ |8 l    解决方案:                                                                8 h; S+ y% h# X
                                                                FROM以下方面适用于条款中的任何内容RETURNING:
6 [( T$ _! q- H6 h; o- i, q1 YUPDATE mytableSET 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.myidWHERE mytable.myid = sub.myidRETURNING mytable.mycolumn,j.othercolumn;
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则