मान लीजिए मैं MyTable नामक एक MySQL तालिका, कि इस तरह दिखता है:,सम्मिलित नई पंक्ति
+----+------+-------+
| Id | Type | Value |
+----+------+-------+
| 0 | A | 1 |
| 0 | B | 1 |
| 1 | A | 2 |
| 1 | B | 3 |
| 2 | A | 5 |
| 2 | B | 8 |
+----+------+-------+
और प्रत्येक Id
के लिए, मैं प्रकार C
जिसका साथ एक नई पंक्ति सम्मिलित करना चाहते हैं Value
उसी Id
की पंक्तियों के लिए A
और B
मानों का योग है। इस तालिका की प्राथमिक कुंजी (Id, Type)
है, इसलिए आईडी के प्रकार, टाइप जोड़े के दोहराव का कोई सवाल नहीं है।
मैं पंक्तियों मैं इस प्रश्न के साथ चाहते हैं बना सकते हैं:
SELECT MyTable_A.Id AS Id, 'C' AS Type, (A_Val + B_Val) AS Value FROM
(SELECT Id, Value AS A_Val FROM MyTable WHERE Type='A') AS MyTable_A
JOIN (SELECT Id, Value AS B_Val FROM MyTable WHERE Type='B') AS MyTable_B
ON MyTable_A.Id = MyTable_B.Id
देता है:
+----+------+-------+
| Id | Type | Value |
+----+------+-------+
| 0 | C | 2 |
| 1 | C | 5 |
| 2 | C | 13 |
+----+------+-------+
लेकिन सवाल यह है: मैं इस परिणाम का उपयोग कैसे करूँ डालने के लिए C
पंक्तियों type- उत्पन्न MyTable
में?
क्या कोई प्रश्न के साथ ऐसा करने का अपेक्षाकृत सरल तरीका है, या मुझे एक संग्रहीत प्रक्रिया लिखने की आवश्यकता है? और यदि उत्तरार्द्ध, मार्गदर्शन सहायक होगा, क्योंकि मैं उनमें बहुत अच्छी तरह से नहीं जानता हूं।
यह आपके डेटा को सामान्य बना देगा। तुम ऐसा क्यों करना चाहते हो? ए और बी के परिवर्तन के बाद क्या होगा? क्या कोई सी को संशोधित कर सकता है? –
यह आवश्यक है कि 'सी' को 'ए + बी' के रूप में परिभाषित किया गया हो, और तालिकाओं में मौजूद सभी प्रविष्टियों में वर्तमान में 'ए' और' बी' मान हैं, वहां भविष्य की प्रविष्टियां होंगी जहां केवल 'सी' ज्ञात है और जहां 'ए' और 'बी' घटकों में टूटने का निर्धारण करने का कोई तरीका नहीं है। मुझे एहसास है कि इसका मतलब है कि मुझे बाहरी सत्यापन तर्क लागू करना होगा जो सुनिश्चित करता है कि 'आईडी = 'बी' * के नाम पर 'आईडी =' बी '* पर सम्मिलन और अपडेट के लिए' सी = ए + बी 'है। –