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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: сгруппировать и упорядочить

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
integer
Отправлено: 07 Ноября, 2013 - 17:49:34
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Нояб. 2006  


Помог: 0 раз(а)




есть таблица из 3х столбцов
юзер, время, сообщение

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

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

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

как получить все сообщения сгруппированые по юзерам и упорядоченые по времени ?
(Добавление)
неужели за 1 запрос сделать это невозможно ?
нужно запрашивать всех юзеров по порядку, а потом для каждого бзера запрашивать сообщения ?
 
 Top
caballero
Отправлено: 07 Ноября, 2013 - 18:29:15
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




а как ты себе представляешь возвращаемый набор данных
с группировкой по юзерам?
набор даных плоский а не трехмерный


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
integer
Отправлено: 07 Ноября, 2013 - 18:37:56
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Нояб. 2006  


Помог: 0 раз(а)




возможно я не правильно понимаю работу GROUP
попробую объяснить по другому

сейчас сделано так:
SELECT * FROM `данные` ORDER BY `юзер`
сначала идут все записи первого, потом второго, третьего итд пользователя
это почти то что нужно
нужно еще и сами записи каждого юзера отсортировать по времени
 
 Top
caballero
Отправлено: 07 Ноября, 2013 - 18:39:00
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




ORDER BY `юзер` ASC , `время`


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
integer
Отправлено: 07 Ноября, 2013 - 18:45:04
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Нояб. 2006  


Помог: 0 раз(а)




спасибо, то что нужно.
пробовал делать почти так-же
SELECT * FROM `данные` ORDER BY `юзер` ORDER BY `время`
но не получалось, не силен в синтаксисе баз данных

(Отредактировано автором: 07 Ноября, 2013 - 20:36:22)

 
 Top
integer
Отправлено: 09 Ноября, 2013 - 21:46:37
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Нояб. 2006  


Помог: 0 раз(а)




есть еще вопрос по этой же таблице из 3х столбцов
юзер, время, сообщение
и запросу
SELECT * FROM `данные` ORDER BY `юзер` ASC , `время` DESC

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

(Отредактировано автором: 09 Ноября, 2013 - 21:51:09)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB