Я хотел бы создать таблицу, в которой используются все данные из «параметров лечения» и где параметр_fk=47. Кроме того, таблица также должна включать только количество (*) строк из «treatment_log», гдеmiss_treatment=' '.
Таким образом, таблица должна отображать все данные из «параметров_лечения» с параметром_fk=47 и количеством строк в «журнале_лечения», где «пропущенное_лечение=' '».
Следует также отметить, что: t.id = l.treatment_fk
Я пытался это сделать, однако это частично удалось. В таблице отображаются все необходимые данные, однако в ней не отображаются все строки из «лечения_параметров» с параметром_fk=47. (Должны быть две разные строки)
SELECT t.id,t.parameter_fk,t.course_name,t.room, t.protocol,t.navigation,t.area,t.coil,t.number_of_treatments,t.motor_threshold,t.threshold_multiplier,t.target_threshold,t.about,t.date,t.created_at, COUNT(*) AS completed_treatments
FROM treatment_parameters t
LEFT JOIN treatment_log l
ON t.id = l.treatment_fk
WHERE t.parameter_fk = 47
AND l.missed_treatment=' 'Ниже вы можете увидеть результат приведенного выше SQL-запроса:
Однако вы можете видеть, что при изменении SQL-запроса имеется более одной строки для paratmer_fk=47.
SELECT t.id,t.parameter_fk,t.course_name,t.room, t.protocol,t.navigation,t.area,t.coil,t.number_of_treatments,t.motor_threshold,t.threshold_multiplier,t.target_threshold,t.about,t.date,t.created_at
FROM treatment_parameters t
WHERE t.parameter_fk = 47Таким образом, нам нужно показать обе строки, а также иметь эффект count(*) дляmiss_treatment=' ' для обеих строк.
Ниже вы можете найти весь список из Treatment_log.
я обратился к проблеме
Это все еще не очень ясно. Ваш код запрашивает все строки, где параметр_fk=47 Иmiss_treatment пуст (или, возможно, пробел). Пример и образцы данных помогут нам понять вашу проблему
Это должно «работать», если ваши данные такие, как вы думаете. Поскольку записей так мало, вы можете добавить образцы данных в виде текста к вопросу.
@iainc Я обновил пост, пожалуйста, посмотрите!
@P.Salmon Я обновил пост, пожалуйста, посмотрите!
Вы должны добавить журнал лечения - было бы полезно добавить образцы данных в виде текста, с которым мы можем что-то сделать, а не изображений.
Это Sql, а не JavaScript






Итак, вам нужно самостоятельно присоединиться:
SELECT t.id,t.parameter_fk,t.course_name,t.room, t.protocol,t.navigation,t.area,
t.coil,t.number_of_treatments,t.motor_threshold,t.threshold_multiplier,t.target_threshold,
t.about,t.date,t.created_at, aa.t_count AS completed_treatments
FROM treatment_parameters t
left join (select treatment_fk, count(*) as t_count from treatment_log l
where l.missed_treatment=' ' group by treatment_fk) aa on aa.treatment_fk=t.id
WHERE t.parameter_fk = 47
Это дало следующую ошибку: Неизвестный столбец «l.missed_treatment» в «где пункт»
Ты великолепен! Работал!
Я не понимаю. Ничто в MySQL не называется "массивом".