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

Sim

Guest
кстати, если считать date уникальной, то можнo, наверное, приджойнить по t2.date=max(t1.date)?
напиши полностью запрос, плз...
таблица то одна, а делать отдельную таблицу для заголовков тем не целесообразно.
 

Фанат

oncle terrible
Команда форума
Да куда уж мне.
я даже понять тебя не могу - не то что запрос написать
 

Sim

Guest
Делаю запрос:
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
 

chira

Новичок
Sim
хочешь поговорить о твоём предложении? (умник от К.Пруткова) ты хоть раз попробовал то , что прделагаешь?
конечно в однопользовательском режиме у тебя будет всё летать на ура ... но я далёк от мысли , что ты собираешься так работать ...

-~{}~ 25.11.04 01:29:

и чем твой update отличается (лучше) варианта Фаната?
 

Sim

Guest
У меня работает этот форум на моем сайте и вполне быстро, единственная проблема, за решением которой я и пришел на этот форум, была описана мной в первом сообщении.

Решение так пока и не найдено.
 

chira

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

-~{}~ 25.11.04 10:40:

или ты ждёшь готового SQL ? и если его нет, то и решения нет?
 

Sim

Guest
chira
Эти так называемые решения не подходят, нужен именно 1 запрос выполняющий то что было описанно.
 

chira

Новичок
Код:
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 , одним запросом не получится ...
 

Sim

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