users表中有user_id(主键),sal两个字段,
pays表中有pay_id(主键),user_id(外键),pay三个字段
users表与pays表中的记录是一对多关系,也就是说users表中的一个user_id在pays中可以有多个pay_id
现在要,统计每个user_id的总的pay和,然后更新到users表中的对应user_id,
这个SQL语句要怎么写?
pays表中有pay_id(主键),user_id(外键),pay三个字段
users表与pays表中的记录是一对多关系,也就是说users表中的一个user_id在pays中可以有多个pay_id
现在要,统计每个user_id的总的pay和,然后更新到users表中的对应user_id,
这个SQL语句要怎么写?
SET sal = P.pay
FROM users U
INNER JOIN (SELECT user_id, SUM(pay) AS pay FROM pays GROUP BY user_id)P
ON U.user_id = P.user_id
即时查询:Select user_id, Sum(pay) as sal From pays Group by user_id
或创建视图:Create View TotalPay(user_id, sal) as Select user_id, Sum(pay) From pays Group by user_id
不是更简单
update users set sal=p.sp
from (select user_id,sum(pay) as sp from pay group by user_id) as p
where users.user_id=p.user_id
pays表中有pay_id(主键),user_id(外键),pay三个字段
users表与pays表中的记录是一对多关系,也就是说users表中的一个user_id在pays中可以有多个pay_id
现在要,统计每个user_id的总的pay和,然后更新到users表中的对应user_id,
这个SQL语句要怎么写?update users
set sal = b.pay
from users a ,(select user_id,sum(pay) as pay from pays group by user_id) b
where a.user_id = b.user_id