Kueri ini seharusnya dapat membantu Anda. Hal terbesar yang dilakukannya adalah menghitung SEMUA janji temu untuk total dan kemudian SUM pada status IF =selesai untuk mendapatkan Anda total dan selesai dalam kueri yang sama.
SELECT
sc.id,
COUNT(ap.id) as total,
SUM(IF(status = 'completed', 1, 0)) as completed
FROM
com_event_schedules sc
LEFT JOIN
com_event_schedules_com_appointment_c re
ON re.com_event_schedules_com_appointmentcom_event_schedules_ida = sc.id
LEFT JOIN
com_appointment ap
ON re.com_event_schedules_com_appointmentcom_appointment_idb = ap.id
WHERE
sc.deleted = 0
GROUP BY
sc.id
Juga, saya memperhatikan Anda mengatakan bahwa itu adalah hubungan Satu ke Banyak. Tabel relasional seperti yang Anda miliki benar-benar untuk Banyak ke Banyak. Cara paling efisien untuk memiliki One to Many adalah dengan menyingkirkan com_event_schedules_com_appointment_c
tabel dan tambahkan com_event_schedule_id
ke com_appointments
tabel.