У меня следующий запрос MySQL:
SELECT Project.*, `trk_deleted`, `trk_status`, `trk_state`
FROM `project` AS `Project` LEFT JOIN `trackline` ON `prj_id` = `trk_project`
WHERE `prj_deleted` = '0' GROUP BY `prj_id` ORDER BY `prj_name`;
Это немного сложно объяснить, но в основном у меня есть структура в моей базе данных, где Проекты имеют несколько * 1007 Маршрут следования *.Обе эти сущности имеют поля prj_deleted
и trk_deleted
соответственно, которые могут иметь значение 1, если оно было удалено (скрыто от просмотра), или значение 0, если оно не удалено (все еще в поле зрения).
На странице просмотра моего проекта отображаются значки для каждого проекта на основе треков в этом проекте.Эти значки отображаются в зависимости от значений trk_status
и trk_state
Страница представления «Мой проект» должна отображать проект только 1 раз, даже если в нем несколько дорожек (отсюда GROUP BY prj_id
)
Моя проблема:
Из документации Mysql для GROUP BY:
"Кроме того, на выбор значений из каждой группы нельзя повлиятьдобавив предложение ORDER BY. Сортировка результирующего набора происходит после выбора значений, и ORDER BY не влияет на то, какие значения выбирает сервер. "
В идеале на странице представления моего проекта должно отображатьсяиконки для треклайнов, которые не удаляются.Вот почему я надеялся, что смогу ЗАКАЗАТЬ НА trk_deleted
до того, как произойдет ГРУППА BY, так что группировка была выполнена с треклайном, который не был удален.
Надеюсь, кто-то может понять, к чему я пытаюсьздесь.