Me he quedado un poco atascado con algo de SQL. No creo que pueda formular la pregunta de manera brillante, así que déjame mostrarte.
Tengo dos mesas, una llamada persona, otra llamada cita. Estoy intentando devolver la cantidad de citas que tiene una persona (incluso si tienen cero). La cita contiene el person_id
y hay una person_id
por cita. Entonces COUNT(person_id)
es un enfoque sensato.
La consulta:
SELECT person_id, COUNT(person_id) AS "number_of_appointments"
FROM appointment
GROUP BY person_id;
Devolverá correctamente, la cantidad de citas que tiene un person_id. Sin embargo, una persona que tiene 0 citas no se devuelve (obviamente, ya que no está en esa tabla).
Ajustar la declaración para tomar person_id de la tabla de personas me da algo como:
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;
Sin embargo, esto solo devolverá un person_id que tiene una cita y no lo que quiero, que es una devolución con personas que tienen 0 citas.
¿Alguna sugerencia por favor?