Последний пост юзера из опр. раздела

Автор Jerry, 28 апреля 2008, 18:45:02

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

Jerry

SMF 1.1.4
Требуется сделать одно дополнение к правилам написания сообщения в одном разделе и тут такая проблема:
Какой нужен запрос к БД, чтобы получить тему последнего сообщения определенного пользователя в определенном разделе?
Т.е. узнав ID раздела и ID пользователя, как узнать ID той ТЕМЫ этого раздела, в которой этот юзер напислал свой последний пост?

Пример:

Board 1:
- topic 1:
- - msg 7465 от юзера 16
- - msg 7469 от юзера 16
- topic 2
- - msg 7497 от юзера 16
- - msg 7414 от юзера 16
- topic 3
- - msg 567 от юзера 16
- - msg 1385 от юзера 16
Board 2:
- topic 1:
- - msg 153 от юзера 16
- - msg 194 от юзера 16
- topic 2
- - msg 80 от юзера 16
- - msg 35 от юзера 16
- topic 3
- - msg 93 от юзера 16
- - msg 250 от юзера 16


То если интересует раздел #2 и юзер #16, то получить в ответе: 3.
(Ведь в теме с id 3 пользователь с id 16 оставил самый новый пост из всего раздела - msg 250).

Я ничего пока не могу придумать, можно узнать последний пост, но в одном разделе - не понимаю, как. Может какой-то запрос с "Where board...". Есть варианты?

Jerry


digger®

Если нужно узнать только id темы, то

SELECT ID_TOPIC FROM smf_messages WHERE ID_BOARD=XXX AND ID_MEMBER=YYY ORDER BY ID_MSG DESC LIMIT 1

Если нужно сразу узнать название темы, то

SELECT m2.subject FROM smf_messages m1 JOIN smf_messages m2 ON m2.ID_TOPIC=m1.ID_TOPIC WHERE m1.ID_BOARD=XXX AND m1.ID_MEMBER=YYY ORDER BY m1.ID_MSG DESC LIMIT 1

XXX - id нужного раздела
YYY - id нужного юзера

Jerry

Урааа!!! Нужен был id как раз! Спасибо!