Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: сгруппировать и упорядочить
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » сгруппировать и упорядочить

Страниц (1): [1]
 

1. integer - 07 Ноября, 2013 - 17:49:34 - перейти к сообщению
есть таблица из 3х столбцов
юзер, время, сообщение

нужно получить все сообщения сгруппированые по юзерам и упорядоченые по времени
делаю так

SELECT * FROM `данные` GROUP BY `юзер` ASC ORDER BY `время` ASC

получаю по одному сообщению от каждого юзера

как получить все сообщения сгруппированые по юзерам и упорядоченые по времени ?
(Добавление)
неужели за 1 запрос сделать это невозможно ?
нужно запрашивать всех юзеров по порядку, а потом для каждого бзера запрашивать сообщения ?
2. caballero - 07 Ноября, 2013 - 18:29:15 - перейти к сообщению
а как ты себе представляешь возвращаемый набор данных
с группировкой по юзерам?
набор даных плоский а не трехмерный
3. integer - 07 Ноября, 2013 - 18:37:56 - перейти к сообщению
возможно я не правильно понимаю работу GROUP
попробую объяснить по другому

сейчас сделано так:
SELECT * FROM `данные` ORDER BY `юзер`
сначала идут все записи первого, потом второго, третьего итд пользователя
это почти то что нужно
нужно еще и сами записи каждого юзера отсортировать по времени
4. caballero - 07 Ноября, 2013 - 18:39:00 - перейти к сообщению
ORDER BY `юзер` ASC , `время`
5. integer - 07 Ноября, 2013 - 18:45:04 - перейти к сообщению
спасибо, то что нужно.
пробовал делать почти так-же
SELECT * FROM `данные` ORDER BY `юзер` ORDER BY `время`
но не получалось, не силен в синтаксисе баз данных
6. integer - 09 Ноября, 2013 - 21:46:37 - перейти к сообщению
есть еще вопрос по этой же таблице из 3х столбцов
юзер, время, сообщение
и запросу
SELECT * FROM `данные` ORDER BY `юзер` ASC , `время` DESC

юзеры сортируются по возрастанию, знаю как сделать по убыванию (но нужно не это)
мой вопрос в том, как в этом запросе сделать сортировку юзеров по времени его последнего сообщения (время в юникс формате)
чтоб сначала шли юзеры с самыми новыми сообщениями а затем более старые.
чтото типа ORDER BY `юзер` MAX(`время`) ASC, `время` DESC

 

Powered by ExBB FM 1.0 RC1