Я пытаюсь собрать несколько «СЧЕТОВ» из одной таблицы для заполнения объекта значения.Я запускаю его на своем локальном сервере, и он работает несколько, что, я думаю, на самом деле означает, что это не так.Система предназначена для отслеживания проверок и данных проверок, и эта функция вызывает историю прошлых проверок.Первая часть обращается к таблице «инспекции», чтобы получить идентификаторы инспекций для этой программы, а вспомогательный элемент получает подсчет количества проверенных элементов, количества элементов в соответствии и т. Д.
Так вот в чем суть.Возвращает правильное количество объектов, только некоторые идентификаторы не возвращаются, а на их место возвращаются дубликаты других.Я попытался сделать это как LEFT JOINS, я попробовал ORDER BY, и я немного поиграл с ним и не могу понять, почему он дублирует одни контрольные идентификаторы и отбрасывает другие.Вот соответствующая часть кода:
$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();
Любая помощь или предложения с благодарностью.Спасибо.