SQL multiple join with count -
मेरे पास तीन टेबल हैं:
फ़ॉर्म (आईडी) प्रश्न (id, form_id, text ) - & gt; एक प्रपत्र ANSWER (आईडी, प्रश्न_आईडी, उत्तर_एनम्बर, पाठ) के लिए एक्स प्रश्न - & gt; एक प्रश्न के लिए एक्स उत्तर मेरे पास उपयोगकर्ता द्वारा दिए गए उत्तरों के लिए एक तालिका भी है:
USERS_ANSWERS (आईडी, प्रश्न_आईडी, उत्तर_एनम्बर) < सवाल_id, answer_number, COUNT (प्रयोक्ता इस एक के लिए जवाब)
मैं, प्रत्येक प्रश्न के लिए, उत्तरों द्वारा दिए गए COUNT, जैसे:
अगर कोई जवाब नहीं है, तो गिनती = 0।
क्या आप मेरी सहायता कर सकते हैं? यह मुझे घंटों लेता है और मेरे पास अभी कुछ नहीं है : (
पीएस: हाँ, मुझे पता है, क्यों मैं USER_SWERS में answer_id का उपयोग नहीं कर रहा हूं? मुझे नहीं पता, यह मेरा डाटाबेस नहीं है ...
एक साधारण JOIN इसे करना चाहिए;
SELECT q.id question_id, a.answer_number, COUNT (ua.id) ) Answer_count से प्रश्न q जॉइन उत्तर पर एक पर q.id = a.question_id LEFT JOIN users_answers ua ON q.id = ua.question_id और a.answer_number = ua.answer_number GROUP BY q.id, a.answer_number ORDER द्वारा q.id , एक। उत्तर_एनम्बर पहले सभी जोड़ों को सभी वैध संयोजनों के लिए अपने प्रश्नों के साथ जोड़ता है। निम्नलिखित बायां जुड़ने से सभी संयोजनों के लिए सभी उत्तरों की गणना होती है, शून्य संख्या की अनुमति होती है। < P>।
Comments
Post a Comment