gpt4 book ai didi

mysql - 从 1 个表中选择并在另一个表中更新

转载 作者:行者123 更新时间:2023-11-30 22:18:33 25 4
gpt4 key购买 nike

我想知道是否可以将这两个查询合并为一个。

SELECT DISTINCT SUM(ROUND(cost,2)) AS totalEarned FROM transactions WHERE `USERID` = 55 AND `payout` != 'PAIDOUT';


UPDATE user_table SET currentPayout = $newUpdate WHERE USERID = 55

将它们结合起来并不是真正的问题。问题是我想跳过 WHERE USERID 语句,从而搜索 USERID 匹配该 USERID 的交易,然后更新另一个表(user_table)中的 currentPayout .

但是我想知道 MySQL 是否有任何函数可供我使用,而不是在 PHP 中使用 for 循环,如“where USERID”,我想知道是否有任何函数可供我使用?

听起来很复杂?我知道..它是..

让我尝试用不同的方式来解释它:

想象一下有一个表(我们称之为事务),其中有一堆不同的事务等等。现在,假设您要计算该表中的所有用户收入,即选择 ID 与用户 ID 匹配的总成本,并在单独的表 (user_table) 中更新它。

但是我没有使用WHERE USERID = 55,而是想知道如何将当前查询重写为在user_table 中搜索用户并搜索的查询用户在 transactions 中获得的收入,然后更新用户在 user_table 中获得的收入。 (但不必指定 WHERE USERID)。

当前结构:

:::Transactions Table:::
ID,
UserID,
Cost

:::User Table:::
ID,
UserID,
currentPayout

所以..基本上是一个脚本或在交易表中搜索并更新每个用户当前支付的东西。

希望这是有道理的。如果没有,请告诉我,我会重写整个内容。

谢谢!

最佳答案

您可以通过 UPDATE 语句使用相关查询:

UPDATE user_table u 
SET u.currentPayout = (SELECT SUM(ROUND(s.cost,2)) AS totalEarned s
FROM transactions s
WHERE s.USERID = u.USERID AND s.payout != 'PAIDOUT'

关于mysql - 从 1 个表中选择并在另一个表中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37410338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com