-3
У меня есть запрос, который дважды использует подзапрос для получения результата в If else, поскольку я не смог выполнить результат первым оценивается в состоянии. Как я могу оптимизировать запрос, какую помощь я буду благодарен.Нужно оптимизировать запрос, чтобы избежать подзапроса, дважды проиллюстрированного в запросе, в условии if else
SELECT
IF(
(SELECT
CONVERT(IFNULL(SUM(T.hours), 0) , DECIMAL (10 , 2)) As Val
FROM
time_entries T
JOIN
Issues IU2 ON (t.issue_id = IU2.Id)
Where
IU2.id = IU.Id) <> 0,
(SELECT
CONVERT(IFNULL(SUM(T.hours), 0) , DECIMAL (10 , 2)) As Val
FROM
time_entries T
JOIN
Issues IU2 ON (t.issue_id = IU2.Id)
Where
IU2.id = IU.Id),
99
) AS NotCovered
FROM
issues IU
Join
custom_values CV ON (IU.project_id = CV.customized_id
AND CV.value = '')
where
IU.done_ratio <> 100;
Можете ли вы объяснить, почему ваш запрос выполняет то, что он делает? Непонятно, почему вы дважды используете подзапрос. – Takarii
Предполагаем ли мы предположить, что это просто * небрежно *, что вы отформатировали свой код в заблуждение? –
В любом случае, если вам нужны хорошие ответы об оптимизации вашего запроса, вы должны предоставить подробную информацию о своих таблицах. –