Я пытаюсь создать свой собственный обмен сообщениями, как с помощью SMS в телефонах.Как сделать заказ по первой записи другого заказа по результату?
У меня есть таблица MySQL как этот
id (the message id)
from_member_id (the id of the member who sent this message)
to_member_id (the id of the member who the message was sent to)
date sent (the date it was sent)
active (if this message is deleted or active)
text (the text)
И я хочу, чтобы получить информацию в специальном упорядоченным образом.
Сначала он должен быть отсортирован по идентификатору, который вам не нужен (назовите его «другим» id). Затем для каждой части этого заказа требуется получить самую большую запись (которая должна быть самой последней датой), а затем отсортировать разделы по значению даты этой записи.
я могу сделать первый заказ на это:
SELECT
from_member_id,
to_member_id,
(CASE WHEN from_member_id = ? THEN to_member_id ELSE from_member_id END CASE) AS conversation_member_id,
date_sent
FROM table
WHERE from_member_id = ?
OR to_member_id = ?
ORDER BY conversation_member_id DESC, date_sent DESC
где ?
мой идентификатор.
Но проблема в том, как сделать второй заказ, где мне нужно заказать разделы по дате записи (которая должна быть самой последней датой). Заметьте, когда я говорю раздел, я имею в виду группу записей с тем же «другим» идентификатором.
Кто-нибудь знает, как это сделать?
Спасибо.
EDIT:
Пример
Если мой идентификатор 5:
From To Date
5 6 july 28
6 5 july 7
6 5 july 7
5 2 july 26
5 2 july 26
2 5 july 26
Так дата 28 июля должен прийти на вершине, потому что это произошло совсем недавно, хотя есть даты в этом разделе, которые до июля 26.
Итак, когда я делаю первый заказ, он заказывает другой идентификатор, который будет 6, а затем 2. Единицы с 6 - это одна секция, а вторая с 2 - вторая.
Я не за тобой. Можете ли вы привести пример желаемого результата? –
ok Я добавил пример вывода. Он был заказан «другим» id, поэтому другой идентификатор будет 6 и 2, поэтому вся запись с 6 группируется, а записи с 2 группируются (так что 2 раздела). Затем он упорядочивается по дате для каждого раздела. Затем он упорядочивается по дате первой записи каждого раздела (которая должна быть самой последней датой), поэтому июль 28 более поздний, чем 26 июля, поэтому он отображается сверху. – omega