मैं बस अपने आप को कुछ एसक्यूएल के साथ थोड़ा अटक गया हूँ। मुझे नहीं लगता कि मैं प्रश्न को शानदार ढंग से लिख सकता हूं - इसलिए मुझे आपको दिखाना चाहिए।
मेरे पास दो टेबल हैं, एक को बुलाया गया व्यक्ति, एक को नियुक्ति कहा जाता है। मैं उन नियुक्तियों की संख्या को वापस करने की कोशिश कर रहा हूं जिनके पास एक व्यक्ति है (यदि उनके पास शून्य है)। नियुक्ति में एक नियुक्ति होती है person_id
और एक person_id
नियुक्ति होती है। तो COUNT(person_id)
एक समझदार दृष्टिकोण है।
पूछताछ:
SELECT person_id, COUNT(person_id) AS "number_of_appointments"
FROM appointment
GROUP BY person_id;
सही ढंग से वापस आ जाएगा, एक व्यक्ति की नियुक्तियों की संख्या। हालाँकि, एक व्यक्ति जिसके पास 0 अपॉइंटमेंट हैं, वापस नहीं किया गया है (जाहिर है कि वे उस तालिका में नहीं हैं)।
व्यक्ति तालिका से person_id लेने के कथन को मोड़ने से मुझे कुछ ऐसा मिलता है:
SELECT person.person_id, COUNT(appointment.person_id) AS "number_of_appointments"
FROM appointment
JOIN person ON person.person_id = appointment.person_id
GROUP BY person.person_id;
हालाँकि, यह अभी भी केवल एक व्यक्ति को वापस लौटेगा, जिसकी नियुक्ति है और न कि मैं जो चाहता हूं, वह उन व्यक्तियों के साथ है, जिनके पास 0 नियुक्तियां हैं!
कृपया कोई सुझाव?