У меня большой вопрос. Неделю мучаюсь уже.
Почему то ORDER BY не дружит с GROUP BY.
Например у меня есть столбцы в таблице test:
id 1 - ball 150
id 2 - ball 200
id 1 - ball 560
id 3 - ball 400
id 2 - ball 180 и т.п.
И мне нужно сделать вывод одного ID только только один раз и где больше всех баллов.
Делаю вот так:
mysql_query("select * from `test` GROUP BY `id` ORDER BY `ball` DESC ");
Выводит только один раз один ID, но не выводит ту где больше всех баллов т.е order by не работает, когда есть group by.
Кто знает как еще такое реализовать?
Так сортировку по балах и нечего не нужно групировать
И еще лимит выведи... Тоесть поставь чтобы выводилась одна запись на страницу
Нужно группировать. А то например если id 5 получит 10 раз подряд больше всех баллов в какой то игре, то в топе его будет выводить 10 раз подряд. А мне нужно, чтоб один раз выводило его там где больше всего баллов
# Saniok (05.08.2013 / 09:09)
И еще лимит выведи... Тоесть поставь чтобы выводилась одна запись на страницу
Лимит тут вообще не нужен
Если 10 получит, будет выводится только, больший результат..... А что же у тебя пишет при выводе... Какая ошибка?
Никакой ошибки нет. Просто одного пользователя выводит несколько раз
Вот смотри скрин.
Это у меня викторина.
Есть топ пользователей по заработанным баллам.
Пользователь Сергей играл несколько раз подряд и получил высокие баллы и поэтому в рейтинге его выводит несколько раз.
Мне нужно, чтоб этого пользователя выводило только один раз! Т.е. где у него больше всего баллов.
Надеюсь щас уже понял что мне нужно
Дай полностью как ты выводишь.
mysql_query("select * from `test` ORDER BY `ball` DESC ");
Не??