Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - shred

Страницы: [1]
1
Базы данных / [mysql] Запрос с сортировкой
« : 08 Октября 2003, 18:52:40 »
Оно не отстреливает дубликаты ников, т.е. если у кого-то 5 результатов заездов, они все 5 тут и будут.

2
Базы данных / [mysql] Запрос с сортировкой
« : 07 Октября 2003, 20:10:03 »
Думаю сработало бы, что-нить вроде этого:

select р.time, у.nick, р.action_date from участниками у, результаты р
where у.id=р.nick_id and у.id = (
select distinct р.nick_id
from результаты р
order by р.time)


Но подзапросов в mysql\'e пока нет :(

3
Базы данных / [mysql] Запрос с сортировкой
« : 07 Октября 2003, 19:52:01 »
Поясняю: надо среди результатов каждого участника найти лучший и представить лучшие результаты участников в табличке, самые лучшие результаты - вверху; поля: результат (время), ник, дата (когда это свершилось). Одним запросом. В mysql\'e.

4
Базы данных / [mysql] Запрос с сортировкой
« : 07 Октября 2003, 10:34:56 »
Alexandr:

"INNER JOIN and , (comma) are semantically equivalent. Both do a full join between the tables used."
Эт тоже самое, что и from участниками у, результаты р where у.id=р.nick_id. На всякий случай я попробовал - не то.

5
Базы данных / [mysql] Запрос с сортировкой
« : 05 Октября 2003, 21:44:12 »
Интересно, а не в mysql\'e это можно было бы сделать одним запросом? (скажем в pgSQL)

6
Базы данных / [mysql] Запрос с сортировкой
« : 05 Октября 2003, 19:42:32 »
И вообще, group by ведет себя не совсем однозначно. Если писать group by поле - отстреливает дубликаты, если group by поле, поле, поле наворочено и удобно сортирует. Полагаю так и должно быть :)

7
Базы данных / [mysql] Запрос с сортировкой
« : 05 Октября 2003, 19:30:18 »
Цитировать
если запраршивать min(time), то время не пропадет.

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

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

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

ЗЫ. mysql v4.0.15

8
Базы данных / [mysql] Запрос с сортировкой
« : 04 Октября 2003, 19:39:58 »
Имеем: таблица с участниками (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 и т.д. строго определен...

Как быть?

Страницы: [1]