[英]Selecting from 1 Table and Updating in Another
我想知道是否可以將這兩個查詢合並為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_table)中的currentPayout。
但是不是用PHP中的for循環來做,比如“USERID”,我想知道MySQL是否有可供我使用的任何功能?
聽起來很復雜? 我知道它是..
讓我試着以不同的方式解釋它:
想象一下,有一個表(讓我們稱之為事務),你有一堆不同的交易和諸如此類的東西。 現在,假設您要計算該表中的所有用戶收入,即選擇ID與用戶ID匹配的總成本,並在單獨的表(user_table)中更新它。
但是我想知道如何將當前查詢重寫為查詢,該查詢在user_table
搜索用戶並搜索用戶在transactions
中獲得的內容,然后更新用戶在user_table
獲得的內容,而不是使用WHERE USERID = 55
。 (但無需指定WHERE USERID)。
目前的結構:
:::Transactions Table:::
ID,
UserID,
Cost
:::User Table:::
ID,
UserID,
currentPayout
所以..基本上是在Transactions表中搜索並更新每個用戶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'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.