0

我以前从未写过存储过程。我将如何使用表 B 中共享密钥的记录计数的结果来更新表 A 中的字段?

表 A 是具有主键“userid”和字段“rentals_count”的“用户”表。表 B 是带有外键“userid”的“rentals”表

对于表 A 中的每个用户(记录),使用表 B 中与该用户匹配的租金总和作为整数更新“rentals_count”字段。

问题包括每晚实际实现和运行存储过程的机制。

4

1 回答 1

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

于 2013-03-05T13:15:04.017 回答