Ich habe gerade ein wenig mit etwas SQL stecken. Ich denke nicht, dass ich die Frage brilliant formulieren kann - also lass mich es dir zeigen.Wie fügt man "Null"/"0" Ergebnisse in COUNT Aggregat?
Ich habe zwei Tabellen, eine Person genannt, eine namens Termin. Ich versuche, die Anzahl der Termine zurückzugeben, die eine Person hat (einschließlich wenn sie Null haben). Termin enthält die person_id
und es gibt eine person_id
pro Termin. So ist COUNT(person_id)
ein vernünftiger Ansatz.
Die Abfrage:
SELECT person_id, COUNT(person_id) AS "number_of_appointments"
FROM appointment
GROUP BY person_id;
korrekt zurückgeben, die Anzahl der Termine eine person_id hat. Eine Person, die 0 Termine hat, wird jedoch nicht zurückgegeben (offensichtlich, da sie nicht in dieser Tabelle sind).
die Anweisung Tweaking von der Person Tabelle gibt mir wie etwas zu nehmen 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;
jedoch Dies wird nur noch eine person_id zurückgeben, die einen Termin hat und nicht, was ich will, das ist eine Rückkehr mit Personen wer hat 0 Termine!
Irgendwelche Vorschläge bitte?
Die GROUP BY scheint ein Tippfehler in der ursprünglichen Frage, da die Tabelle nicht in der Abfrage enthalten ist. –
@JoachimIsaksson Mein Fehler. Na sicher :) –