Лексеич
Московский калмык
Выборка через один запрос
Всем доброго времени суток. При написании небольшого форума для сайта столкнулся с проблемкой. Опять всё уткнулось в оптимизацию запроса.
При открытии главной страницы форума там отображаются в колонках:
Название форума-Последняя тема-Автор-Всего тем
Загвоздка в "последней теме".
Таблица тем в следующем виде:
theme_id - forum_id - author_id - theme_title - time_post
forum_id имеет значения от 1 до 4. Т.е. имеем 4 форума.
Выборку последних тем делаю как в ПХПББ, в цикле перебирая все ИД форумов выбираю запросом MAX(time_post). Но это очень мне не нравится в плане производительности.
Как бы запихать всё в один запрос? Пробовал такую конструкцию:
[sql]
SELECT theme_id, author_id, theme_title, MAX(time_post) WHERE forum_id IN (1,2,3,4)
[/sql]
не работает корректно. Любые запросы с использованием MAX возвращают только максимальное значение, не смотря на ид форума. А мне бы хотелось чтобы запрос вернул максимальное значение для каждого forum_id, т.е. для данного варианта четыре строки.
Всем доброго времени суток. При написании небольшого форума для сайта столкнулся с проблемкой. Опять всё уткнулось в оптимизацию запроса.
При открытии главной страницы форума там отображаются в колонках:
Название форума-Последняя тема-Автор-Всего тем
Загвоздка в "последней теме".
Таблица тем в следующем виде:
theme_id - forum_id - author_id - theme_title - time_post
forum_id имеет значения от 1 до 4. Т.е. имеем 4 форума.
Выборку последних тем делаю как в ПХПББ, в цикле перебирая все ИД форумов выбираю запросом MAX(time_post). Но это очень мне не нравится в плане производительности.
Как бы запихать всё в один запрос? Пробовал такую конструкцию:
[sql]
SELECT theme_id, author_id, theme_title, MAX(time_post) WHERE forum_id IN (1,2,3,4)
[/sql]
не работает корректно. Любые запросы с использованием MAX возвращают только максимальное значение, не смотря на ид форума. А мне бы хотелось чтобы запрос вернул максимальное значение для каждого forum_id, т.е. для данного варианта четыре строки.