Не правильный запрос с group by

codsteep

Новичок
Не правильный запрос с group by

Есть вот такой запрос из 2х таблиц....
"SELECT messages.id_from,messages.num, users.nick FROM messages, users WHERE id_from=id GROUP BY users.nick ORDER BY messages.num DESC LIMIT 10"
Планировалось что он должен вывести 10 последних пользователей оставивших сообщения.... Однако он выводит всё в бесспорядке (или в неизвестном мне порядке) Почему так? Вроде всё правильно....
 

tony2001

TeaM PHPClub
потому, что ты делаешь GROUP BY по одному полю, а сортируешь по другому.
 

codsteep

Новичок
А как быть? GROUP BY я делаю, чтобы не выводил по несколько одинаковых ников. Т.е. можно конечно сделать средствами ПХП, но хотелось бы в мускуле...
 

Sir_J

Guest
Покажи DESC 1 и 2 таблицы.
ИМХО --> ORDER BY messages.num <-- тут никаким боком не катит
 

tony2001

TeaM PHPClub
[sql]
SELECT DISTINCT messages.id_from,messages.num, users.nick FROM messages, users WHERE messages.id_from=users.id ORDER BY messages.num DESC LIMIT 10
[/sql]
?
 

codsteep

Новичок
Выводит тоже самое что и самый запрос написанный в сабже...

-~{}~ 08.07.04 12:50:

Если точнее то он выводит всё правильно - пользователей, оставивших последние 10 сообщений.... Но если я оставил 2 сообщения подрят, то он и выведит меня 2 раза... А надо чтоб только 1.
 

tony2001

TeaM PHPClub
messages.num - это id сообщения?
убери его из SELECT и повторов не будет.
 

codsteep

Новичок
Из твоего или из моего?
Если из твоего, то ничего не меняется...

-~{}~ 08.07.04 13:11:

messages.num - да это id
 

chira

Новичок
Код:
SELECT DISTINCT users.id, users.nick
FROM messages, users
WHERE messages.id_from = users.id
ORDER BY messages.num DESC 
LIMIT 10
 

codsteep

Новичок
2chira то, же самое, выводятся по несколько одинаковых ников..... у меня сейчас возникло страшное подозрение..... Может быть... не... хотя может быть работает не так как надо потому, что у меня на локалке Mysql версии 3.23.53, а не 4.x.x ?!
 

chira

Новичок
начинает казаться, что ерунду говоришь.
у тебя nick не уникальные?
дай пример данных ...
 
Сверху