SQLite
 sql >> डेटाबेस >  >> RDS >> SQLite

त्रुटि ठीक करें:SQLite में "यूनियन के बाएं और दाएं चयन में परिणाम कॉलम की संख्या समान नहीं है"

यदि आपको UNION का उपयोग करने का प्रयास करते समय "त्रुटि:तैयारी में, UNION के बाएँ और दाएँ चयन में परिणाम स्तंभों की संख्या समान नहीं है..." मिल रही है SQLite में ऑपरेटर, ऐसा इसलिए है क्योंकि SELECT . में से एक कथन दूसरे की तुलना में अधिक कॉलम लौटा रहा है।

जब आप UNION . का उपयोग करते हैं ऑपरेटर, दोनों SELECT कथनों को समान संख्या में कॉलम लौटाने चाहिए।

इस समस्या को ठीक करने के लिए, सुनिश्चित करें कि SELECT कथन समान संख्या में कॉलम लौटाते हैं।

त्रुटि का उदाहरण

यहां त्रुटि उत्पन्न करने वाले SQL कोड का एक उदाहरण दिया गया है:

SELECT TeacherName FROM Teachers
UNION
SELECT StudentId, StudentName FROM Students;

परिणाम:

Error: in prepare, SELECTs to the left and right of UNION do not have the same number of result columns (1)

यहां, पहला SELECT स्टेटमेंट एक कॉलम लौटाता है (TeacherName ), लेकिन दूसरा SELECT स्टेटमेंट दो कॉलम लौटाता है (StudentId और StudentName )।

समाधान

इस समस्या को ठीक करने का तरीका यह सुनिश्चित करना है कि दोनों SELECT कथन समान संख्या में कॉलम लौटाते हैं

तो उपरोक्त उदाहरण का उपयोग करके, हम या तो हमारे दूसरे SELECT . से अतिरिक्त कॉलम को हटा सकते हैं कथन:

SELECT TeacherName FROM Teachers
UNION
SELECT StudentName FROM Students;

परिणाम:

TeacherName
-----------
Ben        
Bill       
Cathy      
Ein        
Faye       
Jet        
Spike      
Warren     

या हम पहले SELECT . में एक और कॉलम जोड़ सकते हैं कथन:

SELECT TeacherId, TeacherName FROM Teachers
UNION
SELECT StudentId, StudentName FROM Students;

परिणाम:

TeacherId  TeacherName
---------  -----------
1          Faye       
1          Warren     
2          Ben        
2          Jet        
3          Cathy      
3          Spike      
4          Cathy      
4          Ein        
5          Bill       
5          Warren     
6          Bill       

ध्यान रखें कि आप जो विकल्प चुनते हैं उसके आधार पर आप अलग-अलग परिणाम प्राप्त कर सकते हैं। ऐसा इसलिए है क्योंकि UNION डिफ़ॉल्ट रूप से अलग पंक्तियाँ देता है। जब हम एक और कॉलम जोड़ते हैं, तो इस बात की संभावना होती है कि पहले की डुप्लीकेट पंक्ति अब एक अद्वितीय पंक्ति बन जाए, जो अतिरिक्त कॉलम में मान पर निर्भर करती है।

हम UNION ALL . का भी उपयोग कर सकते हैं , जो डुप्लीकेट मान लौटाता है:

SELECT TeacherId, TeacherName FROM Teachers
UNION ALL
SELECT StudentId, StudentName FROM Students;

परिणाम:

TeacherId  TeacherName
---------  -----------
1          Warren     
2          Ben        
3          Cathy      
4          Cathy      
5          Bill       
6          Bill       
1          Faye       
2          Jet        
3          Spike      
4          Ein        
5          Warren     
6          Bill      

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बिटमैप छवि और पाठ को संग्रहीत करने के लिए SQLite डेटाबेस को कैसे कार्यान्वित करें?

  2. SQLite MAX

  3. SQLite JSON_GROUP_ARRAY ()

  4. SQLite और डेटाबेस आरंभीकरण

  5. SQLite लंबाई () कैसे काम करती है