Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Добрый день, гуру.
Есть таблица
title_id title time available deleted complaint
1 Танк 7 1 0 1
3 Машина 8 1 0 1
1 Танк 9 1 0 1
2 Пушка 10 1 0 1
Есть запрос,
Отредактированно Vladislavik (21.04.2011 18:33:21)
Неактивен
К сожалению, хорошего способа нет. Можно, например, так:
SELECT t.* FROM tablename t
JOIN (SELECT title_id, MAX(time) AS time FROM tablename GROUP BY 1) s ON
t.title_id = s.title_id AND t.time = s.time.
Неактивен
Спасибо, немного тормознуто, но работает))
Неактивен
Vladislavik написал:
SELECT * from tablename WHERE available=1 AND deleted=0 AND complaint=1 GROUP BY title_id DESC ORDER BY time DESC
group by подразумевает "сжатие" по определенному критерию (сумма, максимальное значение и пр), поэтому такая форма запроса, вообще говоря, некорректна.
Vladislavik написал:
Спасибо, немного тормознуто, но работает))
Добавьте индексы на поле time и на пару (title_id,time).
Отредактированно deadka (22.04.2011 10:05:18)
Неактивен
Можно еще так:
Отредактированно deadka (23.04.2011 18:25:28)
Неактивен
В таблице 18 000 строк.
Сделал вот такой запрос:
Отредактированно Vladislavik (26.05.2011 23:17:21)
Неактивен
available_deleted_complaint_accept_title_id_addtime
title_id_addtime_edittime
Неактивен
Страниц: 1