如何根据另一个表的记录计数来更新SQL表?

时间:2018-01-07 06:07:11

标签: mysql sql

我有两个名为ShareBalance的SQL表。 users是两个表中的常见列。 Share表中的每个用户都有多行/共享。

我需要做的是在paid表格中更新Share列,在每个共享中添加1,并且无需在balance Balance列中添加添加的计数}表。比如说,用户在Share表中有3行/股,如果我为每个共享添加+1,那么在balance表的Balance列中需要添加3与现有余额。

我写了以下sql语句。它正在相应地更新Share表,但Balance表更新错误。见下图:

table share

Update Share Set paid=paid + 1
Update Balance Set balance=balance + S.Paid
From balance B,share S Where B.users=S.users

1 个答案:

答案 0 :(得分:0)

您可以使用两个选择。

对于readblity,显式连接sintax更好 如果使用别名,则应在所有列名称

中使用表别名
Update Share 
Set paid=paid + 1;

Update Balance B
INNER JOIN (
  select users, count(*) an num_count
  from share
  group by user
  ) t on t.users = B.users
Set B.balance=B.balance + t.num_count;