Mysql 从一个表中选择并在另一个表中更新
我想知道是否可以将这两个查询合并为1Mysql 从一个表中选择并在另一个表中更新,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
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'
美丽的。正是我要找的!美丽的。正是我要找的!