Sim
Guest
Как сделать правильно такой SQL-запрос?
База данных - mySQL
Надо делать выборку типа:
"select root,id,max(date) as dt from forum group by root order by dt desc limit 30"
Поле root(int) служит для определения id темы к которой относится данное сообщение и имеет одинаковое значение для всей темы равное id первого сообщения в теме.
Поле date(int) - дата сообщения в формате timestamp, меняется на текущее если автор сообщения редактирует свое сообщение, поле не уникальное.
Поле id(int) primary key - монотонно возрастающее, ИД сообщения.
Нужно чтобы в результате запроса поле id относилось к той записи, где найдено значение max(date), что на практике не получается.
Реально выбирается id из первой найденной записи в групповом наборе, соответсвующем данному полю root. Записи в этом групповом наборе не сортируются, а идут в том порядке как расположены в таблице на сервере.
Так вот как сделать правильно запрос чтобы id выбирался соответствующий найденному max(date)?
База данных - mySQL
Надо делать выборку типа:
"select root,id,max(date) as dt from forum group by root order by dt desc limit 30"
Поле root(int) служит для определения id темы к которой относится данное сообщение и имеет одинаковое значение для всей темы равное id первого сообщения в теме.
Поле date(int) - дата сообщения в формате timestamp, меняется на текущее если автор сообщения редактирует свое сообщение, поле не уникальное.
Поле id(int) primary key - монотонно возрастающее, ИД сообщения.
Нужно чтобы в результате запроса поле id относилось к той записи, где найдено значение max(date), что на практике не получается.
Реально выбирается id из первой найденной записи в групповом наборе, соответсвующем данному полю root. Записи в этом групповом наборе не сортируются, а идут в том порядке как расположены в таблице на сервере.
Так вот как сделать правильно запрос чтобы id выбирался соответствующий найденному max(date)?