为什么这个mysqli php调用失败?

为什么这个mysqli php调用失败?,mysql,mysqli,Mysql,Mysqli,我试图从一个表中收集一些“计数”来填充一个值对象。我在本地服务器上运行它,它在某种程度上起作用,我想这确实意味着它不起作用。用于系统跟踪检查和检查数据,此函数调用过去检查的历史记录。第一部分调用“inspections”表以获取该程序的检查ID,子部分选择get counts以获取检查的项目数、符合要求的项目数等等 这就是它的要点。它返回正确数量的对象,只返回部分ID,并返回其他ID的副本。我试着做左连接,我试过ORDER BY,我已经玩了很多次了,我不明白为什么它复制了一些检查ID并删除了其他

我试图从一个表中收集一些“计数”来填充一个值对象。我在本地服务器上运行它,它在某种程度上起作用,我想这确实意味着它不起作用。用于系统跟踪检查和检查数据,此函数调用过去检查的历史记录。第一部分调用“inspections”表以获取该程序的检查ID,子部分选择get counts以获取检查的项目数、符合要求的项目数等等

这就是它的要点。它返回正确数量的对象,只返回部分ID,并返回其他ID的副本。我试着做左连接,我试过ORDER BY,我已经玩了很多次了,我不明白为什么它复制了一些检查ID并删除了其他ID。以下是守则的相关部分:

$stmt = mysqli_prepare($this->connection,
      "SELECT 
          i.id,
          i.assign_date,
          i.start_date,
          i.complete_date,
          i.complete,
          i.inspection_type,
          i.program_id,
          (SELECT COUNT(t.inspected) FROM insp_items t WHERE t.inspection_id = i.id && t.inspected = 1) AS inspected,
          (SELECT COUNT(t.status) FROM insp_items t WHERE t.inspection_id = i.id && t.status = 0) AS ic,
          (SELECT COUNT(t.status) FROM insp_items t WHERE t.inspection_id = i.id && t.status = 1) AS icw,
          (SELECT COUNT(t.status) FROM insp_items t WHERE t.inspection_id = i.id && t.status = 2) AS nic,
          (SELECT COUNT(t.status) FROM insp_items t WHERE t.inspection_id = i.id && t.status = 3) AS na
       FROM inspections i 
       WHERE i.program_id = ? GROUP BY i.id");
  $this->throwExceptionOnError();

非常感谢您的帮助或建议。谢谢。

按i.id删除
-没有理由拥有它,因为您没有聚合功能


子选项使用聚合功能
计数
,但它们本身不是聚合结果。

删除
按i.id分组
-没有理由拥有它,因为您没有聚合功能


子选择使用聚合功能
计数
,但它们本身不是聚合结果。

代码检查严格用于改进工作代码。我已将您的问题迁移到stackoverflow,在那里您更有可能获得有关问题的帮助。一旦你的问题开始工作,你可以随时把它带回代码评审,以获得额外的输入。代码评审严格来说是为了改进工作代码。我已将您的问题迁移到stackoverflow,在那里您更有可能获得有关问题的帮助。一旦问题起作用,请随时将其带回代码评审,以获取更多输入。