Po prostu trochę utknąłem w trochę SQL. Myślę, że nie potrafię genialnie sformułować tego pytania - więc pozwól, że ci pokażę.
Mam dwa stoliki, jeden na wezwanie, drugi na spotkanie. Próbuję zwrócić liczbę spotkań, które dana osoba ma (w tym jeśli ma zero). Termin zawiera person_id
i jest person_id
na spotkanie. Więc COUNT(person_id)
jest to rozsądne podejście.
Zapytanie:
SELECT person_id, COUNT(person_id) AS "number_of_appointments"
FROM appointment
GROUP BY person_id;
Wróci poprawnie, liczba spotkań, które posiada person_id. Jednak osoba, która ma 0 spotkań, nie jest zwracana (oczywiście, ponieważ nie ma ich w tej tabeli).
Poprawienie instrukcji w celu pobrania identyfikatora osoby z tabeli osób daje mi coś takiego:
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;
To jednak nadal zwróci tylko osobę, która ma spotkanie, a nie to, czego chcę, czyli zwrot z osobami, które mają 0 spotkań!
Jakieś sugestie?