我有两张桌子:
-Card
id
points
-History
CardId
points
现在我想执行更新查询,该查询根据具有相同cardId的历史记录中的点减去Card表中的点
例如我有行:
-card
1 10
2 30
-History
1 5
1 3
2 10
2 9
因此我应该在Card表行中:
-card
1 2
2 11
最好的方法是什么?
答案 0 :(得分:1)
这样就可以了。
update card
set points = points - total
from card
inner join (select cardid, sum(points) as total from history) v
on card.id = v.cardid
但我同意质疑您的数据库结构的其他评论