Kendimi biraz SQL ile sıkışıp kaldım. Soruyu zekice ifade edebileceğimi sanmıyorum - bu yüzden size göstereyim.
Biri kişi, biri randevu adlı iki masam var. Bir kişinin sahip olduğu randevu sayısını iade etmeye çalışıyorum (sıfır olması da dahil). Randevu içerir person_id
ve person_id
randevu başına vardır . YaniCOUNT(person_id)
mantıklı bir yaklaşımdır.
Sorgu:
SELECT person_id, COUNT(person_id) AS "number_of_appointments"
FROM appointment
GROUP BY person_id;
Doğru bir şekilde dönecektir, bir person_id'in sahip olduğu randevu sayısı. Ancak, 0 randevusu olan bir kişi geri dönmez (tabii ki bu masada olmadıkları için).
İfadeyi kişi tablosundan person_id alacak şekilde değiştirmek bana şöyle bir şey verir:
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;
Ancak bu, yine de sadece randevusu olan bir person_id'i döndürecek ve benim istediğim değil, 0 randevusu olan kişilerle bir dönüş!
Herhangi bir öneri lütfen?