Ich habe mich gerade ein bisschen mit SQL beschäftigt. Ich glaube nicht, dass ich die Frage brillant formulieren kann - also lass es mich dir zeigen.
Ich habe zwei Tische, einen namens Person, einen Termin. Ich versuche, die Anzahl der Termine einer Person zurückzugeben (auch wenn sie Null hat). Termin enthält die person_id
und es gibt eine person_id
pro Termin. So COUNT(person_id)
ist ein vernünftiger Ansatz.
Die Abfrage:
SELECT person_id, COUNT(person_id) AS "number_of_appointments"
FROM appointment
GROUP BY person_id;
Gibt die Anzahl der Termine, die eine person_id hat, korrekt zurück. Eine Person mit 0 Terminen wird jedoch nicht zurückgegeben (offensichtlich, da sie nicht in dieser Tabelle enthalten ist).
Wenn ich die Anweisung so ändere, dass person_id aus der Personentabelle entfernt wird, habe ich ungefähr Folgendes:
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;
Dies wird jedoch immer noch nur eine person_id zurückgeben, die einen Termin hat und nicht das, was ich will, was eine Rückgabe mit Personen ist, die 0 Termine haben!
Irgendwelche Vorschläge bitte?