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

MySQL में UNION का उपयोग करते समय "ERROR 1250 (42000):किसी एक चयन से तालिका '...' को वैश्विक ORDER खंड में उपयोग नहीं किया जा सकता है" ठीक करें

यदि आपको UNION का उपयोग करते समय एक त्रुटि मिल रही है जिसमें लिखा है "ERROR 1250 (42000):तालिका '...' किसी एक चयन से वैश्विक ORDER खंड में उपयोग नहीं किया जा सकता है" एक MySQL क्वेरी में क्लॉज, यह शायद इसलिए है क्योंकि आप कॉलम नाम को उसके टेबल नाम के साथ अर्हता प्राप्त कर रहे हैं।

यह MySQL में काम नहीं करता है।

इस समस्या को ठीक करने के लिए, या तो तालिका का नाम हटा दें या स्तंभ उपनाम का उपयोग करें।

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

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

(SELECT TeacherName FROM Teachers)
UNION
(SELECT StudentName FROM Students)
ORDER BY Teachers.TeacherName ASC;

परिणाम:

ERROR 1250 (42000): Table 'Teachers' from one of the SELECTs cannot be used in global ORDER clause

यहाँ मैंने TeacherName . द्वारा परिणामों को क्रमित करने का प्रयास किया कॉलम, लेकिन मैंने उस कॉलम को टेबल नाम के साथ क्वालिफाई किया (मैंने Teachers.TeacherName का इस्तेमाल किया कॉलम नाम का संदर्भ देने के लिए)।

MySQL UNION के परिणामों को ऑर्डर करते समय तालिकाओं को इस तरह से संदर्भित करने की अनुमति नहीं देता है ऑपरेशन।

समाधान 1

इसे ठीक करने का एक तरीका ORDER BY . से टेबल का नाम हटाना है खंड:

(SELECT TeacherName FROM Teachers)
UNION
(SELECT StudentName FROM Students)
ORDER BY TeacherName ASC;

परिणाम:

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

समाधान 2

यदि पिछला विकल्प उपयुक्त नहीं है, तो समस्या को ठीक करने का दूसरा तरीका उपनाम का उपयोग करना है। दूसरे शब्दों में, कॉलम के लिए एक उपनाम निर्दिष्ट करें, फिर उस उपनाम को ORDER BY . में देखें खंड:

(SELECT TeacherName t FROM Teachers)
UNION
(SELECT StudentName FROM Students)
ORDER BY t ASC;

परिणाम:

+--------+
| t      |
+--------+
| Ben    |
| Bill   |
| Cathy  |
| Ein    |
| Faye   |
| Jet    |
| Spike  |
| Warren |
+--------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - सबसे कम और सबसे बड़ा तुलना ऑपरेटर

  2. SQL - यदि मौजूद है तो अद्यतन करें अन्यथा सम्मिलित करें

  3. पर्ल का उपयोग करके MySQL से कैसे कनेक्ट करें

  4. पायथन के साथ SQL डेटाबेस कैसे बनाएं और हेरफेर करें

  5. डेटाबेस, टेबल, कॉलम के संयोजन को कैसे बदलें?