php - 在 MySQL 查询中没有得到正确的 COUNT() (修改较早)

标签 php mysql sugarcrm

我有 3 个表名为

  1. com_event_schedules
  2. com_appointments
  3. com_event_schedules_com_appointment_c

前两个表之间有关系。

以下是表格的字段

  1. com_event_schedules -- id -- name -- schedule_date -- start_time -- end_time -- deleted
  2. com_appointments -- id -- start_time -- end_time -- status
  3. com_event_schedules_com_appointment_c -- id -- com_event_schedules_com_appointmentcom_event_schedules_ida (schedule_id) -- com_event_schedules_com_appointmentcom_appointment_idb (appointment_id)

表 com_event_schedule 和 com_appointments 之间的关系是一对多

我想要的结果 schedule_id,以及 status='completed' 的约会总数

我尝试了以下查询:

SELECT sch.id,COUNT(app.status) 
FROM 
com_event_schedules sch, 
com_appointment app, 
com_event_schedules_com_appointment_c rel 
WHERE 
sch.id=com_event_schedules_com_appointmentcom_event_schedules_ida AND 
app.id=rel.com_event_schedules_com_appointmentcom_appointment_idb AND
app.status='completed'

我在结果中期望的是每个计划的 ID,其 COUNT 个约会的状态为“已完成”,如果没有匹配,则 COUNT 应为“0”。

但我在结果中得到的是只有预约 ID 已完成且状态为 COUNT 1 的人。

例如

我有 2 个日程安排,每个日程安排有 3 个约会。其中第一个时间表的一个约会的状态为“已完成”

所以我需要这样的结果

sch_id     app.status
1              1
2              0

最佳答案

试试这个:

SELECT 
    sch.id,
    SUM(IF(app.status = 'completed' , 1, 0)) 
FROM 
    com_event_schedules sch
INNER JOIN  com_event_schedules_com_appointment_c rel 
    ON rel.com_event_schedules_com_appointmentcom_event_schedules_ida = sch.id 
INNER JOIN com_appointment app
    ON rel.com_event_schedules_com_appointmentcom_appointment_idb = app.id 
GROUP BY
    sch.id
HAVING
    COUNT(*) > 1

关于php - 在 MySQL 查询中没有得到正确的 COUNT() (修改较早),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16978320/

相关文章:

php - 如何解决这个约束错误

mysql - 为一所包含学生记录的高中创建数据库系统

mysql - 如何使用触发器更改格式?

javascript - 在 SugarCrm 7.2 中完全加载记录 View 后执行 javascript

mysql - 共享 SugarCRM 数据库的大问题

mysql - 我可以在我为 SugarCRM 实现的同一个 FastStack 服务(通过 FastStack 运行 Apache 和 MySql)中在我的桌面上部署 Joomla 吗?如果是这样怎么办?

php - 结果返回在函数中重复多次

php - 是否有 php 的契约设计框架?

php - 无法显示 Laravel 数据透视表中的所有记录

MySQL存储过程的问题