Я разрабатываю систему сообщений между двумя пользователями и хочу сгруппировать их по времени отправки, показывая только один раз.
В настоящее время я показываю сообщения и время отправки каждого из сообщений, но я хочу показать только последнее сообщение, сгруппировав их в беседе (как это происходит с прямыми сообщениями Twitter).
SELECT id, author, datetime, text FROM messages WHERE author = 'A' AND receiver = 'B'
Что у меня есть (id/автор/дата/время/текст):
1 / A / 22/03/2019 22:15 / This is message 1
--------------------------------------------
2 / A / 22/03/2019 22:16 / This is message 2
--------------------------------------------
3 / B / 22/03/2019 22:16 / This is message 3
--------------------------------------------
4 / A / 22/03/2019 22:16 / This is message 4
--------------------------------------------
5 / A / 22/03/2019 22:16 / This is message 5
--------------------------------------------
6 / A / 22/03/2019 22:18 / This is message 6
--------------------------------------------
7 / B / 22/03/2019 22:19 / This is message 7
Что я хочу (id/автор/дата/время/текст):
1 / A / 22/03/2019 22:15 / This is message 1
--------------------------------------------
2 / A / 22/03/2019 22:16 / This is message 2
--------------------------------------------
3 / B / 22/03/2019 22:16 / This is message 3
--------------------------------------------
4 / A / 22/03/2019 22:16 / This is message 4
5 / A / 22/03/2019 22:16 / This is message 5
--------------------------------------------
6 / A / 22/03/2019 22:18 / This is message 6
--------------------------------------------
7 / B / 22/03/2019 22:19 / This is message 7
Сообщения 4 и 5 были сгруппированы, поскольку они принадлежат одному пользователю и отправлены в одну и ту же минуту.
Я хотел бы группировать сообщения по дням, когда текущая дата не равна дате отправки сообщений. Другими словами, сообщения, которые не были отправлены в текущую дату, будут сгруппированы вместе. В этом случае не учитывался бы пользователь сообщения и все группировалось бы только по дате.