Php 使用其他表中的总和(数据)更新列

Php 使用其他表中的总和(数据)更新列,php,mysql,Php,Mysql,好吧,我在这里画了一张空白,急需你的帮助 3个表: 比赛(id、进球、第一轮、第二轮、获胜、平局) 团队(id、姓名、得分、得分、赢、输、平局、得分) 团队比赛(连接表)(团队id,比赛id) 因此,我想要实现的是,将团队表中的'draw'列更新为相应团队的匹配表的'sum(draw)'。 matches表中的“draw”值为“1”时为“draw”,非“0”时为“0” 我就是想不出来了。坚持了好几天。。。 有人能告诉我正确的方向吗?您需要使用相关子查询从其他表中获取值。比如: UPDATE `t

好吧,我在这里画了一张空白,急需你的帮助

3个表:

比赛(id、进球、第一轮、第二轮、获胜、平局)

团队(id、姓名、得分、得分、赢、输、平局、得分)

团队比赛(连接表)(团队id,比赛id)

因此,我想要实现的是,将团队表中的'draw'列更新为相应团队的匹配表的'sum(draw)'。 matches表中的“draw”值为“1”时为“draw”,非“0”时为“0”

我就是想不出来了。坚持了好几天。。。
有人能告诉我正确的方向吗?

您需要使用相关子查询从其他表中获取值。比如:

UPDATE `teams`
SET `draw`=(SELECT SUM(`draw`)
            FROM `matches`
            WHERE `id` IN (SELECT `match_id`
                           FROM `team-match`
                           WHERE `team_id`=`teams`.`id`))
甚至是带有联接的单个子查询:

UPDATE `teams`
SET `draw`=(SELECT SUM(`draw`)
            FROM `matches`
                JOIN `team-match`
                    ON `team-match`.`match_id`=`matches`.`id`
            WHERE `team-match`.`team_id`=`teams`.`id`)
两者都应该做这项工作。我假设第一个在性能上更好,但是还没有测试,它们之间的距离应该在几毫秒之内。除此之外,您还需要使用php查询值并更新单个行。实际上,赢/输/抽列可以在运行时以类似的性能进行计算,而不必每次匹配都更新值