Ранее задавал вопрос как сортировать данные полученные из базы средствами PHP, посоветовали что лучше составить запрос на SQL.
Имеется таблица:
Нужно составить из списка сообщений - диалоги (например как в любом мессенджере, вывод только последнего сообщения от отправителя).
Получаю массив из PHP
[0] => Array
(
[sender_id] => 1
[text] => как длеа
[date] => 1562313697
)
[1] => Array
(
[sender_id] => 3
[text] => тест
[date] => 1562313674
)
[2] => Array
(
[sender_id] => 1
[text] => Привет
[date] => 1562313477
)
[3] => Array
(
[sender_id] => 2
[text] => хай
[date] => 1562114203
)
[4] => Array
(
[sender_id] => 3
[text] => 12345
[date] => 1562113713
)
[5] => Array
(
[sender_id] => 2
[text] => zzz
[date] => 1562112784
)
на выходе должно быть:
[0] => Array
(
[sender_id] => 1
[text] => как длеа
[date] => 1562313697
)
[1] => Array
(
[sender_id] => 3
[text] => тест
[date] => 1562313674
)
[2] => Array
(
[sender_id] => 2
[text] => хай
[date] => 1562114203
)
Если я правильно понял, то нужно сделать группировку при выборке, с учетом последнего времени отправки:
SELECT * FROM your_table as main_table
INNER JOIN (SELECT sender_id ,max(id) as last_message_id FROM your_table GROUP BY sender_id ) as sub_table
ON sub_table.last_message_id = main_table.id
ORDER BY date DESC
Таким образом в sub_table
будут содержаться все последние сообщения для каждого отправителя, и из main_table
будут браться все остальные нужные вам значение
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В админке Битрикса при переходе Настройки-Инструменты-Диагностика-Настройки PHP (/bitrix/admin/phpinfophp) выдаёт пустую страницу
У меня есть метод класса, который обновляет ценовые предложения товара:
Как можно записать цену в переменную по значению ключа, например BTC, ETH, LTC смскрин: https://dl