Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Truy vấn MySQL hai điều kiện khác nhau cho số lượng khác nhau trong 1 truy vấn

Truy vấn này sẽ có thể giúp bạn. Điều quan trọng nhất mà nó làm là tính tổng TẤT CẢ các cuộc hẹn và sau đó là SUM trên trạng thái IF =đã hoàn thành để giúp bạn có được cả tổng số và tổng số đã hoàn thành trong cùng một truy vấn.

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

Ngoài ra, tôi đã nhận thấy bạn nói rằng đó là mối quan hệ Một - Nhiều. Các bảng quan hệ như bạn có thực sự dành cho Nhiều đến Nhiều. Cách hiệu quả nhất để có Một đến Nhiều là loại bỏ com_event_schedules_com_appointment_c bảng và thêm com_event_schedule_id tới com_appointments bảng.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php:phiên so với cơ sở dữ liệu

  2. Tại sao bạn không nên sử dụng mysql_fetch_assoc nhiều hơn 1 lần?

  3. Không thể nhìn thấy COUNT mySQL từ bảng thứ 3

  4. mysql_num_rows thay thế để giới thiệu?

  5. Cảnh báo:mysql_query () yêu cầu tham số 2 là tài nguyên, boolean được cung cấp trong C:\ wamp \ www \ pyrll \ emlhome.php trên dòng 15