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