【发布时间】:2022-01-20 14:50:15
【问题描述】:
我正在尝试从表中更新/删除,然后通过内部连接返回更新后的数据,如下所示:
WITH removed AS (
DELETE FROM cart
WHERE cart.id = 1
RETURNING *
)
SELECT cart.id, product.name, product.descr, product.price, cart.quantity
FROM cart INNER JOIN product
ON cart.product_id = product.id
WHERE cart.user_id = (SELECT user_id FROM removed);
但是,似乎主要的SELECT 查询在删除之前返回,因此没有反映更改。从我在PostgreSQL 文档中读到的内容:
WITH中的子语句彼此同时执行,并与主查询同时执行。
在从表中更新/删除之后,我可以使用另一种方法来返回 select 语句吗?
【问题讨论】:
标签: sql postgresql common-table-expression