"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > यूनियन ऑपरेशंस में ''त्रुटि: प्रयुक्त SELECT स्टेटमेंट में कॉलम की अलग-अलग संख्या होती है'' का समाधान कैसे करें?

यूनियन ऑपरेशंस में ''त्रुटि: प्रयुक्त SELECT स्टेटमेंट में कॉलम की अलग-अलग संख्या होती है'' का समाधान कैसे करें?

2024-11-10 को प्रकाशित
ब्राउज़ करें:875

How to Resolve \

त्रुटि: चयन कथनों में कॉलम गणना में विसंगतियां

एकाधिक चयन कथनों वाली क्वेरी निष्पादित करते समय, जैसे कि यूनियन ऑपरेशन, यह अनिवार्य है यह सुनिश्चित करने के लिए कि प्रत्येक कथन में बिल्कुल समान संख्या में कॉलम हों। ऐसा करने में विफलता के परिणामस्वरूप "त्रुटि: प्रयुक्त SELECT स्टेटमेंट्स में कॉलम की एक अलग संख्या होती है" त्रुटि होगी।

इस समस्या को हल करने के लिए, क्वेरी को फिर से लिखना होगा ताकि प्रत्येक SELECT क्लॉज में एक समान संख्या हो संगत डेटा प्रकारों वाले स्तंभों की. उदाहरण के लिए, दी गई क्वेरी:

SELECT * FROM friends
LEFT JOIN users AS u1 ON users.uid = friends.fid1
LEFT JOIN users AS u2 ON users.uid = friends.fid2
WHERE (friends.fid1 = 1) AND (friends.fid2 > 1)
UNION SELECT fid2 FROM friends
WHERE (friends.fid2  = 1) AND (friends.fid1 

इस त्रुटि से ग्रस्त है क्योंकि पहले SELECT में 4 कॉलम हैं ("", u1., u2.*), जबकि दूसरा SELECT केवल एक कॉलम देता है ("fid2") ").

एक अधिक सरल पुनर्लेखन जो अपेक्षित कार्यक्षमता को सुरक्षित रखता है वह है:

SELECT f.*, u.*
FROM FRIENDS AS f
JOIN USERS AS u ON u.uid = f.fid2
WHERE f.fid1 = 1 
  AND f.fid2 > 1
UNION 
SELECT f.*, u.*
FROM FRIENDS AS f
JOIN USERS AS u ON u.uid = f.fid1
WHERE f.fid2  = 1 
  AND f.fid1 

यह सुनिश्चित करके कि दोनों SELECT स्टेटमेंट मिलान डेटा प्रकारों के साथ समान संख्या में कॉलम लौटाते हैं, क्वेरी को कॉलम गिनती त्रुटि का सामना किए बिना निष्पादित किया जा सकता है। इसके अतिरिक्त, यह अनावश्यक बाहरी जुड़ावों को हटा देता है, जो दिए गए स्कीमा के आधार पर अनावश्यक लगते हैं।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3