ฉันเพิ่งติดอยู่กับ SQL เล็กน้อย ฉันไม่คิดว่าฉันจะเรียบเรียงคำถามได้อย่างยอดเยี่ยมดังนั้นให้ฉันแสดงให้คุณเห็น
ฉันมีโต๊ะสองโต๊ะคนหนึ่งเรียกว่านัด ฉันกำลังพยายามส่งคืนจำนวนการนัดหมายที่บุคคลหนึ่งมีอยู่ (รวมถึงถ้าพวกเขามีศูนย์) การนัดหมายประกอบด้วยperson_id
และมีการperson_id
นัดหมายต่อครั้ง ดังนั้นจึงCOUNT(person_id)
เป็นแนวทางที่สมเหตุสมผล
คำถาม:
SELECT person_id, COUNT(person_id) AS "number_of_appointments"
FROM appointment
GROUP BY person_id;
จะกลับมาถูกต้องจำนวนการนัดหมายที่ 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;
อย่างไรก็ตามสิ่งนี้จะยังคงส่งคืนเฉพาะ person_id ที่มีการนัดหมายไม่ใช่สิ่งที่ฉันต้องการซึ่งเป็นการส่งคืนกับบุคคลที่มีการนัดหมาย 0 ครั้ง!
ข้อเสนอแนะใด ๆ กรุณา?