मुझे 'फ़ोल्डर्स' की एक टेबल मिली है। मैं 16 के उपयोगकर्ता के साथ सभी रिकॉर्ड वापस करना चाहता हूं।MySQL कथन एक जुड़ाव और गिनती संयोजन?
SELECT * FROM `folders` WHERE userId = 16;
मुझे 'फाइल' की एक तालिका मिली है। ऊपर दिए गए प्रत्येक 'फ़ोल्डर' के लिए, मैं उस 'फ़ोल्डर' के भीतर 'फाइलों' की गिनती वापस करना चाहता हूं।
SELECT COUNT(*) as "Files" FROM files WHERE Folder = n;
मैं इन्हें कैसे जोड़ूं? मैं हार गया हूं। धन्यवाद! ,
SELECT
folders.*,
COUNT(files.*) as filetotal
FROM folders
LEFT JOIN files ON folders.ID=files.folderID
WHERE userId = 16
GROUP BY folders.ID
यह गलत है। फ़ोल्डर्स में संदर्भित कॉलम। * ग्रुप बाय क्लॉज में होना चाहिए। ग्रुप बाय के साथ एक SELECT कथन में सभी कॉलम या तो ग्रुप बाय या एक समग्र फ़ंक्शन में होना चाहिए। – alyssackwan
हाँ, यही कारण है कि मैं folders.ID द्वारा समूहबद्ध कर रहा हूं (एक कॉलम समूह के लिए पर्याप्त है)। – dusoft
इसे काम करने के लिए आपको SELECT क्लॉज में उल्लिखित "फ़ोल्डर्स" के सभी आवश्यक कॉलमों द्वारा ग्रुप करने की आवश्यकता होगी - मैंने "एक कॉलम समूह पर पर्याप्त है" के सिद्धांत का परीक्षण किया है और यह SQL सर्वर में सत्य नहीं है 2005 कम से कम। –