Как сделать правильно такой SQL-запрос?

  • Автор темы Автор темы Sim
  • Дата начала Дата начала
кстати, если считать date уникальной, то можнo, наверное, приджойнить по t2.date=max(t1.date)?
напиши полностью запрос, плз...
таблица то одна, а делать отдельную таблицу для заголовков тем не целесообразно.
 
Да куда уж мне.
я даже понять тебя не могу - не то что запрос написать
 
Делаю запрос:
select f1.root,max(f1.date) as dt,f2.id as lid from forum as f1 left join forum as f2 on f2.date=max(f1.date) group by root order by date desc limit 30

Получаю ошибку: Error: Invalid use of group function
 
Sim
хочешь поговорить о твоём предложении? (умник от К.Пруткова) ты хоть раз попробовал то , что прделагаешь?
конечно в однопользовательском режиме у тебя будет всё летать на ура ... но я далёк от мысли , что ты собираешься так работать ...

-~{}~ 25.11.04 01:29:

и чем твой update отличается (лучше) варианта Фаната?
 
У меня работает этот форум на моем сайте и вполне быстро, единственная проблема, за решением которой я и пришел на этот форум, была описана мной в первом сообщении.

Решение так пока и не найдено.
 
тебе предложили два решения ... если ты их не увидел ... ну извини

-~{}~ 25.11.04 10:40:

или ты ждёшь готового SQL ? и если его нет, то и решения нет?
 
chira
Эти так называемые решения не подходят, нужен именно 1 запрос выполняющий то что было описанно.
 
Код:
CREATE TEMPORARY TABLE tt AS
select root,max(date) as dt 
from forum 
group by root 
order by dt desc limit 30;

select a.id,tt.root,tt.dt 
from tt, forum a
where tt.root= a.root AND tt.dt=a.date;
order by dt desc limit 30;

-~{}~ 25.11.04 14:29:

это для версии ниже 4.1 , одним запросом не получится ...
 
Спасибо...
Все получилось с временной таблицей, но приходится делать
"drop table temp" после того как таблица уже не нужна, т.к. по непонятной для меня причине она не дропается сама, вернее дропается, но спустя пару минут.
 
Сверху