Mysql выборка записей со сравнением с предыдущей

Festem

Постоялец
Регистрация
4 Сен 2014
Сообщения
97
Реакции
27
Помогите в составлении запроса. Суть следующая - есть таблица постов с полями datapost и tema, которое содержите время создания поста в UNIX формате. Мне надо найти все посты, которые создались не более чем через час после предыдущей записи в этой же теме. Реально сделать это средствами mysql? Т.е. вывести список таких тем в качестве результата
 
Код:
SELECT `tema` FROM `table` WHERE `datapost` > (SELECT `datapost` FROM `table` WHERE `id` = 1) AND `datapost` <= (SELECT `datapost` FROM `table` WHERE `id` = 1) + 3600;

Говнокод, но должно работать...
 
Попробуй нечто подобное:
Код:
SELECT t1.tema, t1.datapost, t2.tema, t2.datapost FROM `table` t1
join `table` t2 on t2.tema = t1.tema and t2.id > t1.id and t2.datapost >= t1.datapost and t2.datapost < (t1.datapost + +3600)

вместо tema в сравнениях лучше использовать какой-нибудь числовой topic_id и сделать индексы по этим полям.
 
Назад
Сверху