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

MySQL में UNION का उपयोग करते समय "ERROR 1054 (42S22):'ऑर्डर क्लॉज" में अज्ञात कॉलम '...' को ठीक करें

यदि आपको UNION का उपयोग करते समय त्रुटि "1054 (42S22):'ऑर्डर क्लॉज' में अज्ञात कॉलम '...'" मिल रही है MySQL में क्लॉज, ऐसा इसलिए हो सकता है क्योंकि आप किसी अलियास्ड कॉलम को उसके कॉलम नाम से संदर्भित करने का प्रयास कर रहे हैं।

UNION . का उपयोग करते समय MySQL में क्लॉज, यदि किसी कॉलम में उपनाम है, तो आपको उस उपनाम का उपयोग किसी भी ORDER BY में करना होगा खंड जो उस कॉलम को संदर्भित करता है।

तो त्रुटि को ठीक करने के लिए, कॉलम को उसके उपनाम से संदर्भित करना सुनिश्चित करें। वैकल्पिक रूप से, आप उपनाम को हटा सकते हैं और सीधे कॉलम नाम का संदर्भ दे सकते हैं।

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

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

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

परिणाम:

ERROR 1054 (42S22): Unknown column 'TeacherName' in 'order clause'

यहाँ मैंने TeacherName . द्वारा परिणामों को क्रमित करने का प्रयास किया कॉलम, लेकिन उस कॉलम में उपनाम है। तथ्य यह है कि मैंने ORDER BY . में उपनाम का उपयोग नहीं किया है खंड त्रुटि उत्पन्न करने के लिए पर्याप्त था।

समाधान 1

इस समस्या को ठीक करने का एक तरीका 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 |
+--------+

इससे समस्या हल हो गई।

समाधान 2

ऐसा करने का एक और तरीका है कि उपनाम को पूरी तरह से हटा दिया जाए:

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

परिणाम:

+-------------+
| TeacherName |
+-------------+
| 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. कुबेरनेट्स पर गैलेरा क्लस्टर चलाना

  2. अपने MySQL सर्वर के लिए InnoDB बफर पूल आकार की गणना करना

  3. दो संभावित तालिकाओं में से एक के लिए एक MySQL विदेशी कुंजी करना संभव है?

  4. JSON_INSERT () - MySQL में JSON दस्तावेज़ में मान डालें

  5. MySQL ड्रॉप टेबल