2013-06-26 21 views
6

#1054 - Unknown column 'default_ps_products.manufacturer_id' in 'order clause'अज्ञात स्तंभ

क्यों मैं बयान के साथ उपरोक्त त्रुटि हो रही है नीचे यह बयान में p बिना ठीक काम करता है और मैं एक आदेश खंड का उपयोग नहीं कर रहा हूँ?

SELECT * FROM `default_ps_products` p WHERE p.`manufacturer_id` = 2 
+2

आपको टैबलेटनाम के बजाय 'ALIAS' का उपयोग करने की आवश्यकता है क्योंकि आपने तालिका पर उपनाम परिभाषित किया है। उदाहरण के लिए 'p.manufacturer_id' –

+0

@JW 웃 मैंने 'select * से' default_ps_products' p को चुना है जहां p.manufacturer_id = 2' अभी भी वही त्रुटि –

+0

मुझे कोई कारण नहीं दिख रहा है कि आपको यह संदेश वास्तविक रूप से प्राप्त नहीं होगा 'ऑर्डर बाय'। क्या आप वाकई त्रुटि प्राप्त करते समय यह वास्तविक क्वेरी निष्पादित करते हैं? –

उत्तर

4

जब से तुम को आंशिक क्वेरी इस शुरू से ही स्पष्ट नहीं था तैनात है, लेकिन अपने full query यह स्पष्ट करता है।

SELECT * 
FROM default_ps_products 
WHERE manufacturer_id=2 
ORDER BY `default_ps_products`.`manufacturer_id` ASC 
LIMIT 0, 30 

आप चयन में default_ps_products तालिका उपनाम जोड़ना है, तो आप चुनिंदा उर्फ ​​केवल WHERE खंड में उपयोग नहीं कर सकते, तो आप भी ORDER BY बदलने के लिए एक ही अन्य नाम का उपयोग करने की आवश्यकता होगी। पूर्ण प्रश्न दूसरे शब्दों में होना चाहिए;

SELECT * 
FROM default_ps_products p 
WHERE p.manufacturer_id=2 
ORDER BY p.`manufacturer_id` ASC 
LIMIT 0, 30 
1

आपकी क्वेरी ठीक है। जब मैं इस क्वेरी को चलाता हूं तो कोई त्रुटि नहीं होती है। क्वेरी के साथ कुछ भी गलत नहीं है।

SELECT * FROM default_ps_products AS p WHERE p.manufacturer_id = 2 यह काम कर रहा ठीक :)

9

इस प्रयोग SELECT p.* FROM बजाय SELECT * FROM हल करने के लिए।

कारण यह है कि phpMyAdmin परिणाम ग्रिड में पहले कॉलम के लिए आपकी क्वेरी में ऑर्डर जोड़ रहा है। उपनाम के कारण, यह कोड विफल रहता है।

यह समस्या phpMyAdmin 4.0.6 पर पुन: उत्पन्न होती है। मुझे नवीनतम 4.2.5

+0

यदि आप खंड द्वारा कोई ऑर्डर नहीं करते हैं तो भी आप यह त्रुटि प्राप्त कर सकते हैं। यह जवाब उस समस्या को हल करता है; इस्क्ससन का जवाब नहीं है। –

1

पर स्थिति पता नहीं है, तो अपने phpmyadmin खोलें। अपने चुने हुए डेटाबेस पर क्लिक करें। अब आपके पास दाईं ओर सभी टेबल की एक सूची है। default_ps_products तालिका की संरचना पर क्लिक करें। अब आप इसकी एक संरचना देखते हैं। अब SQL टैब पर क्लिक करें और 'SELECT * से डिफ़ॉल्ट_ps_products ORDER BY' के रूप में क्वेरी निष्पादित करें। एक बार जब आप इस क्वेरी को निष्पादित कर लेंगे, तो अब अपनी समस्या का समाधान करें।

संबंधित मुद्दे