我之前从未编写过存储过程。如何使用表B中共享密钥的记录计数结果更新表A中的字段?
表A是“用户”表,其主键为“userid”,字段为“rental_count”。表B是带有外键“userid”的“出租”表
对于表A中的每个用户(记录),将“rental_count”字段更新为表B中与该用户匹配的租金总和。
这个问题包括每晚实际实现和运行存储过程的机制。
答案 0 :(得分:2)
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
<击>