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

UNION, EXCEPT, या INTERSECT का उपयोग करते समय PostgreSQL में “ERROR:  तालिका के लिए FROM-क्लॉज प्रविष्टि अनुपलब्ध” को ठीक करें

यदि आपको “ERROR:तालिका के लिए FROM-क्लॉज प्रविष्टि अनुपलब्ध . मिल रही है PostgreSQL में UNION . जैसे ऑपरेटर का उपयोग करते समय , INTERSECT , या EXCEPT , ऐसा इसलिए हो सकता है क्योंकि आप किसी स्तंभ नाम को उसके तालिका नाम से योग्य बना रहे हैं।

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

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

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

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

परिणाम:

ERROR:  missing FROM-clause entry for table "teachers"
LINE 4: ORDER BY Teachers.TeacherName ASC;

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

UNION . के परिणामों का आदेश देते समय इस तरह की संदर्भ तालिका काम नहीं करती है , EXCEPT , या INTERSECT

समाधान 1

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

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

समाधान 2

इसे ठीक करने का दूसरा तरीका कॉलम के लिए एक उपनाम का उपयोग करना है:

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

इस विकल्प के साथ, हम कॉलम के लिए एक उपनाम निर्दिष्ट करते हैं, और फिर उस उपनाम को ORDER BY में संदर्भित करते हैं खंड।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL क्वेरी में (func ()).* सिंटैक्स के साथ एकाधिक फ़ंक्शन evals से कैसे बचें?

  2. PostgreSQL JDBC नल स्ट्रिंग को एक बाइट के रूप में लिया गया

  3. PostgreSQL में SQL क्वेरी चलाना बंद करें (लंबी) जब सत्र या अनुरोध अब मौजूद नहीं हैं?

  4. जब कोई त्रुटि आती है तो मैं पोस्टग्रेस स्क्रिप्ट को कैसे रोक सकता हूं?

  5. PostgreSQL 9.0 में डेटाबेस निर्माण समय कैसे प्राप्त करें?