एक दृष्टिकोण:
UPDATE user_table u
JOIN (SELECT q.userid
, SUM(1.00) AS deposit
FROM (
-- original OP query goes here
) q
GROUP BY q.userid
) r
ON r.userid = u.userid
SET u.balance = u.balance + r.deposit
हम मूल ओपी क्वेरी कि resultset दिखाया गया रिटर्न का उपयोग करें और बनाने है कि (जैसा कि ऊपर के रूप में क्ष क्वेरी में एलियास) एक इनलाइन दृश्य।
उस से, हम उपयोगकर्ता आईडी की एक अलग सूची पूछताछ करते हैं, और परिणामस्वरूप उपयोगकर्ता द्वारा प्रदर्शित होने वाले समय की संख्या। इससे हमें उपयोगकर्ता नाम और जमा राशि (प्रत्येक बार उपयोगकर्ता आईडी दिखाई देने के लिए 1 डॉलर) देता है (कुछ डेटाबेस हमें यह सुनिश्चित करने के लिए 1 के बजाय 1.0 के रूप में मान निर्दिष्ट करना चाहते हैं। मुझे लगता है कि एसयूएम अधिक प्रतिनिधि है क्या हम पूरा करने के लिए कोशिश कर रहे हैं।)
हम चाहते हैं कि इनलाइन दृश्य (आर) उपयोगकर्ता तालिका में शामिल होने, और है कि उपयोगकर्ता (बैलेंस संभालने के लिए वर्तमान शेष के लिए जमा राशि जोड़, दशमलव डॉलर के रूप में संग्रहीत किया जाता है (1।00 = एक डॉलर)
परीक्षण करने के लिए, एक SELECT
बयान में UPDATE
कन्वर्ट:
- "
SET
" खंड
- को दूर एक "
ORDER BY
" खंड जोड़ने (वैकल्पिक) बनाने के लिए परिणाम
- "
UPDATE
" कीवर्ड को हटाएं और इसे
को बदलें साथ
:
SELECT r.userid
, r.deposit
, u.balance AS old_balance
, u.balance + r.deposit AS new_balance
, u.userid
FROM
पूर्ण चयन:
SELECT r.userid
, r.deposit
, u.balance AS old_balance
, u.balance + r.deposit AS new_balance
, u.userid
FROM user_table u
JOIN (SELECT q.userid
, SUM(1.00) AS deposit
FROM (
-- original OP query goes here
) q
GROUP BY q.userid
) r
ON r.userid = u.userid
नोट कोई है कहां खंड, शामिल हों विधेय (ON खंड में) क्या निर्धारित करता है जो पंक्तियां चयनित हैं है/उपयोगकर्ता तालिका में प्रभावित।
उपयोगकर्ता आईडी और क्वेरी सिक्का आईडी द्वारा क्वेरी के परिणामों को समूहित करें उपयोगकर्ता आईडी की गिनती के लिए एक कॉलम जोड़ें अपने $ 1 द्वारा उपयोगकर्ता आईडी की गिनती गुणा करें और सिक्कों को अपडेट करें उस नए मान के साथ। – xQbert
@AliBZ, हां 'बैलेंस' उपयोगकर्ता तालिका में कॉलम नाम है। जहां मुझे संतुलन अपडेट करना है। –
क्षमा करें, मेरा बुरा, मुझे वह हिस्सा याद आया। – AliBZ