Общие > Базы данных

[mysql] Запрос с сортировкой

(1/5) > >>

shred:
Имеем: таблица с участниками (id, nick) и таблица с результатами заездов этих участников (id, nick_id, time, action_date, где time - за какое время доехал, action_date - дата, когда это было).

Требуется: что-то вроде "Топ 10 ездаков", со строками вида "time | nick | action_date", nick\'и, конечно, повторяться не должны, сортировка по time, меньшее впереди.

Если пишем
select * from участниками у, результаты р
where у.id=р.nick_id
group by у.id
избавляемся от повторов ников, но и теряем нужную запись (с лучшим временем), вместо нее - произвольная.
Если писать group by р.time asc, у.id вылазят записи о всех заездах. В сущности, все ок, только не знаю как повторяющиеся ники убрать.

Вот если бы можно было сначала отсортировать, а потом с помощью group by у.id отстрелить дубли :) Но порядок group by, order by и т.д. строго определен...

Как быть?

madone:
Попробуй вставить ключевое слово DISTINCT

Меняздесьдавнонет:
сначала написал а потом только подумал.
прошу прощения.

Меняздесьдавнонет:
если запраршивать min(time), то время не пропадет.

shred:

--- Цитировать ---если запраршивать min(time), то время не пропадет.
--- Конец цитаты ---

Я так и делаю :) НО! Если при этом выводить и дату, то она не соответствует нику и результату заезда (ник, как ни странно, соответствует результату).


--- Цитировать ---Попробуй вставить ключевое слово DISTINCT
--- Конец цитаты ---

Пробовал, эффекта не добился. Может как-то не так пробовал, но вариант, вроде всего один.

ЗЫ. mysql v4.0.15

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии