|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.04.2017, 23:03 | #1 |
Пользователь
Регистрация: 10.04.2017
Сообщений: 66
|
Группировка после сортировки
Здравствуйте. Делаю сайт с чатом между пользователями. Задача вроде не сложная, но неделя прошла, а проблема осталась. В общем есть страница сообщений. С 1 стороны список переписок с другой поле для сообщений. Выбираешь собеседника и во 2 стороне появляется история и тд и тп. Проблема в том что слева где выводится список собеседников должно выводиться последнее сообщение с этим пользователем. Решение было сделать поиск где отправитель или получатель это сам пользователь(то есть либо ты последний писал либо тебе) а второй это собеседник. Делается сортировка в подзапросе, а потом в основном запросе групировка что бы вывести только последние сообщение каждого собеседника. Вот сам запрос:
SELECT * FROM (SELECT * FROM users, messages WHERE (messages.message_sender_id=4 OR messages.message_recipient_id=4) AND (users.user_id=messages.message_sen der_id OR users.user_id=messages.message_reci pient_id) ORDER BY messages.message_date) AS resipient GROUP BY resipient.user_id ORDER BY resipient.message_date Буду очень благодарен если поможете исправить запрос либо, если этот запрос вообще не верный, подсказать как он должен выглядеть |
11.04.2017, 09:33 | #2 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
Код:
Код:
P.P.S. для новичков в SQL обычно рекомендую старую проверенную книгу Мартин Грубер. Понимание SQL. была выложена и здесь на форуме(в т.ч. мною).
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 11.04.2017 в 09:35. |
|
12.04.2017, 22:11 | #3 |
Пользователь
Регистрация: 10.04.2017
Сообщений: 66
|
Огромное спасибо. Ваш ответ очень помог. Не много не понимаю как это работает, но я все же недавно изучаю SQL-запросы. Думаю разберусь. Главное что работает. Не много переделал правда под структуру БД и под мелкие нужды. В общем огромное спасибо!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как отобразить что после сортировки число встало под другим индексом ? | роман-талица | Microsoft Office Excel | 16 | 17.02.2017 13:21 |
[Pascal] нужно сформировать матрицу из векторов, вектора x,y,z должны стать столбцами матрицы, остановилась после сортировки векторов | anna77777 | Помощь студентам | 3 | 07.01.2017 01:22 |
Слияние двух массивов введённых в консоли после их сортировки по убыванию и возрастанию | Кодер2 | C# (си шарп) | 1 | 02.11.2016 23:19 |
Поменять местами два последних элемента массива после сортировки (язык си) | PPPPPP | Помощь студентам | 2 | 18.04.2010 18:13 |
Макрос умирает после сортировки | Skandalius | Microsoft Office Excel | 17 | 10.09.2009 16:35 |