समान-टेबल भाई-बहनों के डेटा के साथ पंक्तियों को अपडेट करना
जैसी संरचना वाली एक तालिका की कल्पना करें यह:
ID | NAME | VALUE |
---|---|---|
1 | परीक्षण | VALUE1 |
2 | परीक्षण2 | VALUE2 |
1 | Test2 | NULL |
4 | Test | NULL |
1 | Test3 | VALUE3 |
आपका कार्य समान "नाम" वाली अन्य पंक्तियों के डेटा के साथ NULL "VALUE" कोशिकाओं को पॉप्युलेट करना है (यानी, "टेस्ट" और "टेस्ट 2" को अपने पूर्ववर्तियों से मान प्राप्त करना चाहिए)। वांछित परिणाम है:
ID | NAME | VALUE |
---|---|---|
1 | परीक्षण | VALUE1 |
2 | परीक्षण2 | VALUE2 |
1 | Test2 | VALUE2 |
4 | Test | VALUE1 |
1 | Test3 | VALUE3 |
चुनौती उसी तालिका के भीतर पंक्तियों को संदर्भित करने में निहित है जो एक विशिष्ट "नाम" मान साझा करती हैं। समाधान में जॉइन स्टेटमेंट का उपयोग करना शामिल है:
UPDATE data_table t, (SELECT DISTINCT ID, NAME, VALUE FROM data_table WHERE VALUE IS NOT NULL AND VALUE != '') t1 SET t.VALUE = t1.VALUE WHERE t.ID = t1.ID AND t.NAME = t1.NAME
इस कथन में, सबक्वेरी (T1) गैर-शून्य और गैर-रिक्त "मान" मानों के साथ अलग-अलग पंक्तियाँ निकालती है। मुख्य क्वेरी (टी) फिर अद्यतन की जाने वाली पंक्तियों की पहचान करने के लिए "आईडी" और "नाम" फ़ील्ड पर इस सबक्वेरी के साथ जुड़ती है। परिणामस्वरूप, खाली "VALUE" सेल समान "NAME" मान वाली गैर-रिक्त पंक्तियों से संबंधित मानों से भर जाते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3