Mi sono solo un po 'bloccato con un po' di SQL. Non credo di poter formulare la domanda in modo brillante, quindi lascia che te lo mostri.
Ho due tavoli, uno chiamato persona, uno chiamato appuntamento. Sto cercando di restituire il numero di appuntamenti di una persona (incluso se hanno zero). L'appuntamento contiene il person_id
e c'è un person_id
per appuntamento. Quindi COUNT(person_id)
è un approccio ragionevole.
La domanda:
SELECT person_id, COUNT(person_id) AS "number_of_appointments"
FROM appointment
GROUP BY person_id;
Restituirà correttamente il numero di appuntamenti di un person_id. Tuttavia, una persona che ha 0 appuntamenti non viene restituita (ovviamente in quanto non sono in quella tabella).
Modificare l'istruzione per prendere person_id dalla tabella person mi dà qualcosa del tipo:
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;
Questo tuttavia, restituirà comunque solo un person_id che ha un appuntamento e non quello che voglio che è un ritorno con persone che hanno 0 appuntamenti!
Qualche suggerimento per favore?