Вывод последнего ответа

Разгильдяй

Новичок
Вывод последнего ответа

Всем доброго времени суток. Друзья, помогите составить запрос. Есть две таблицы:

forum_topics
topic_id,
forum_id,
topic_title,
topic_time

и

forum_posts
post_id,
topic_id,
forum_id,
post_time,
post_text,
post_userid

Необходимо показать: время , название темы и айди пользователя, который оставил последний пост например в форуме с forum_id = 1
Заранее всем огромное спасибо за потраченное время.
 

fixxxer

К.О.
Партнер клуба
а какие запросы пробовал и почему не получается?
 

Bred Vilchec

Новичок
ну и в чем проблема???
Связываешь таблицы по заданному условию (JOIN-ы), сортируешь (ORDER BY), получаешь ОДНУ запись из результата (LIMIT).

А зачем вообще во второй таблице forum_id?

-~{}~ 17.04.05 20:41:

P.S. А спамить в ЛС нехорошо. Никто за тебя запрос писать не будет, пора бы уже запомнить.
 

Разгильдяй

Новичок
Сделал так:
SELECT t. * , p. *
FROM forum_topics AS t
LEFT JOIN forum_posts AS p ON ( t.topic_id = p.topic_id )
WHERE p.forum_id =1
GROUP BY t.topic_id
ORDER BY p.post_time DESC
LIMIT 0 , 1

но к сожалению показывает неправильный результат. В чем ошибка, подскажите пожалуйста?

-~{}~ 17.04.05 21:04:

УРААААААААААААА, ПОЛУЧИЛОСЬ!!!
Кому интересно вот мой вариант:
SELECT t. * , p. *
FROM forum_topics AS t
LEFT JOIN forum_posts AS p ON ( t.topic_id = p.topic_id )
WHERE p.forum_id =1
GROUP BY p.post_time
ORDER BY p.post_time DESC
LIMIT 0, 1

возможно это не самый лучший вариант с лимитом?
 

Vasya

Guest
Может так попроще выглядит?
SELECT p.post_time, t.topic_title, p.post_userid
FROM forum_topics t, forum_posts p
WHERE p.forum_id =1
AND t.topic_id = p.topic_id
ORDER BY p.post_time DESC
LIMIT 1
 
Сверху