Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL Query dua kondisi berbeda untuk hitungan berbeda dalam 1 query

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah ada cara di MySQL untuk membalikkan bidang boolean dengan satu permintaan?

  2. Jquery datepicker dengan Ajax tidak berfungsi

  3. Bagaimana cara menjalankan perintah MySQL di bash?

  4. MySQL:pilih elemen pertama dari daftar yang dipisahkan koma

  5. php - Mengaktifkan pengguna ke posting favorit