Общие > Базы данных
[mysql] Запрос с сортировкой
shred:
И вообще, group by ведет себя не совсем однозначно. Если писать group by поле - отстреливает дубликаты, если group by поле, поле, поле наворочено и удобно сортирует. Полагаю так и должно быть :)
fidget:
> Если при этом выводить и дату, то она не соответствует нику и результату заезда (ник, как ни странно, соответствует результату)
оно берет первое попавшееся значение для каждого y.id.
Одним запросом не сделаешь. Сначала выбираешь все значения id и минимального, а потом соответсвующие этим значениям остальные данные.
shred:
Интересно, а не в mysql\'e это можно было бы сделать одним запросом? (скажем в pgSQL)
fidget:
Все зависит от того как в других СУБД реализована выборка при GROUP BY, т.е возвращаются ли там данные соответствующие минимальному значению или нет. Этот момент в стандарте SQL не описан, потому каждая СУБД реализует так как ей удобно.
Даже в том-же MySQL начиная с версии 4.1 это можно одним запросом реализовать, но не раньше.
Меняздесьдавнонет:
В принципе, можно и одним запросом, поскольку проблема только в уникальности участников.
То есть, сделать примитивнийший запрос, который выбирает заезды сортируя по времени, и джойня имя игрока. Естественно, без лимита, или с запасом - скажем, 100.
И выводить, запоминая тех, кто уже был.
Криво, но зато просто :-)
Навигация
Перейти к полной версии