0
我想在下次选择时使用第一个子查询结果。但它没有看到row1,因为它不是数据库中的表。我怎么解决这个问题?在其他查询中使用派生子查询
UPDATE transactions, (SELECT
card_id,
id,
card_sum_before,
card_sum_after,
amount,
dt
FROM transactions
WHERE status = 1 AND
card_id = 1
ORDER BY dt ASC) AS counted_table,
(SELECT
row2.id AS id,
(row1.card_sum_after - row2.amount - row2.card_sum_after) AS difference
FROM counted_table AS row1
INNER JOIN counted_table AS row2 ON row2.id = row1.id + 1
ORDER BY row1.dt ASC) selected
SET transactions.difference = selected.difference
WHERE transactions.id = selected.id`
请参阅:[为什么我应该为我认为是非常简单的SQL查询提供一个MCVE?](https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an -mcve-for-what-looks-to-the-a-very-simple-sql-query) – Strawberry
请提供示例表结构和数据 – Dawn