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)