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

MySQL डुप्लीकेट कॉलम त्रुटि केवल तभी जब क्वेरी को सबक्वेरी के रूप में लपेटा जाता है

आपको त्रुटि मिलने का कारण है एलियासिंग AS X . लेकिन समस्या वास्तव में यह है कि आपने * . का उपयोग किया है , अपने इच्छित फ़ील्ड को सूचीबद्ध करने के बजाय।

पहली क्वेरी में, SELECT * वास्तव में इस तरह के क्षेत्रों का उत्पादन करता है:

A.id, A.name, A.description, B.id, B.name, B.date_started, C.id, C.name, C.isDeleted

यह ठीक काम करता है, जब तक कि आप किसी फ़ील्ड को उसके नाम से सीधे संदर्भित करने का प्रयास नहीं करते हैं और इसके उपनाम का उपयोग नहीं करते हैं। किसी भी तरह से आपके SQL इंजन को इससे कोई समस्या नहीं होगी, आप परिणाम सेट के साथ जो कुछ भी कर रहे हैं उसमें अभी भी समस्या हो सकती है।

हालाँकि जब आप अपनी क्वेरी को एक सबक्वेरी और उपनाम में ले जाते हैं तो परिणाम AS X , तो आप इसके साथ समाप्त होते हैं:

X.id, X.name, X.description, X.id, X.name, X.date_started, X.id, X.name, X.isDeleted

अब आप देख सकते हैं कि यह शिकायत क्यों कर रहा है। आप देख सकते हैं कि इसका उपयोग करना भी बुरा क्यों है* , क्योंकि यह संयोजन कुछ समय के लिए काम कर सकता है, और फिर आप किसी मौजूदा तालिका में एक नया फ़ील्ड जोड़ते हैं, जो कि किसी अन्य तालिका के समान है, और इन दोनों तालिकाओं के साथ आपके द्वारा लिखी गई प्रत्येक क्वेरी को अब करने की आवश्यकता है फिर से लिखा गया।



  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. कक्षा उपस्थिति रिकॉर्ड प्रारूप SQL क्वेरी

  3. MySQL क्वेरी आउटपुट को एक्सेल या .txt फ़ाइल में कैसे सेव करें?

  4. php स्थिति के आधार पर html तालिका पंक्ति को कैसे दिखाना है?

  5. डालने से पहले डुप्लिकेट की जांच करें