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

标签 mysql sql

我有两个名为 Share 的 SQL 表和Balanceusers是两个表中的公共(public)列。 Share 中每个用户有多个行/共享 table 。

我需要做的是更新paid专栏来自Share表中每个份额加 1,并且添加的计数不需要在 balance 中添加Balance栏目 table 。假设用户在 Share 中有 3 行/共享表,如果我为每个共享添加 +1,则在 balanceBalance栏目表需要在现有余额的基础上添加 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

最佳答案

Update Share Set paid=paid + 1
Update Balance Set balance=balance + (select count(S.Paid) From balance B,share S 
                                     Where B.users=S.users
                                     group by s.users )
From balance B,share S Where B.users=S.users

--If increment is always +1 in share table then this query will work fine.

关于mysql - 如何根据另一个表的记录数更新一个SQL表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48134760/

相关文章:

mysql - mariadb - 左外连接

php - 当第一个表中存在特殊字符时,MySQL SELECT 然后保存或更新到不同的表。 left_my_text_alone();

php - 在php中制作加法表和乘法表。

sql - 组合来自不同表的数据以形成新闻提要

php - 我在处理数据时是否需要锁定我的记录以避免不一致?

MySQL GROUP_CONCAT 不返回所有结果

javascript - 如何在 GridView 中显示 NULL 值?

sql - 如何将带有日期(字符串)的列转换为仅在pyspark中的日期

MySQL - 如何修改列默认值?

SQLite - 如果存在则更新(而不是替换),否则插入