我以前从未写过存储过程。我将如何使用表 B 中共享密钥的记录计数的结果来更新表 A 中的字段?
表 A 是具有主键“userid”和字段“rentals_count”的“用户”表。表 B 是带有外键“userid”的“rentals”表
对于表 A 中的每个用户(记录),使用表 B 中与该用户匹配的租金总和作为整数更新“rentals_count”字段。
问题包括每晚实际实现和运行存储过程的机制。
我以前从未写过存储过程。我将如何使用表 B 中共享密钥的记录计数的结果来更新表 A 中的字段?
表 A 是具有主键“userid”和字段“rentals_count”的“用户”表。表 B 是带有外键“userid”的“rentals”表
对于表 A 中的每个用户(记录),使用表 B 中与该用户匹配的租金总和作为整数更新“rentals_count”字段。
问题包括每晚实际实现和运行存储过程的机制。
为了SQL Server
CREATE PROCEDURE UpdateTableA
AS
UPDATE a
SET a.rentals_count = b.totalCount
FROM TableA a
INNER JOIN
(
SELECT userID, Count(*) totalCount
FROM TableB
GROUP BY userID
) b ON a.userID = b.userID
为了MySQL
UPDATE TableA a
INNER JOIN
(
SELECT userID, Count(*) totalCount
FROM TableB
GROUP BY userID
) b ON a.userID = b.userID
SET a.rentals_count = b.totalCount