Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从一个表中选择并在另一个表中更新_Mysql - Fatal编程技术网

Mysql 从一个表中选择并在另一个表中更新

Mysql 从一个表中选择并在另一个表中更新,mysql,Mysql,我想知道是否可以将这两个查询合并为1 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语句,从而搜索USE

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

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\u表)中的currentPayout

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

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

让我试着用另一种方式来解释:

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

但是,我不想使用
WHERE USERID=55
,而是想知道如何将当前查询重写为一个查询,在
user\u表
中搜索用户,并搜索用户在
交易
中赚取的收入,然后更新用户在
user\u表
中赚取的收入。(但无需指定用户标识的位置)

当前结构:

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

:::User Table:::
ID,
UserID,
currentPayout
所以。。基本上是一个脚本或其他东西,它在事务表中搜索并更新每个用户的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'

您可以将相关查询与
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'

美丽的。正是我要找的!美丽的。正是我要找的!