У меня 2 таблицы. Первый содержит список групп. Второй содержит время публикации сообщений. Вам нужно получить список групп и опубликовать их, но сообщения должны сортироваться по времени. Когда я делаю в группировке, время поста не то же самое.
table time_post
+----+---------------+--------+-----------+
| id | id_public | img_id | time_post |
+----+---------------+--------+-----------+
| 1 | 1 | 2 | 5 |
| 2 | 2 | 1 | 1 |
| 7 | 1 | 1 | 55 |
| 8 | 1 | 3 | 2 |
| 10 | 3 | 3 | 4 |
| 11 | 3 | 3 | 2 |
+----+---------------+--------+-----------+
table public
+----+-----------+-------------+--------------+-----------+
| id | id_public | time_update | access_token | text_send |
+----+-----------+-------------+--------------+-----------+
| 1 | 9876 | 0 | 1234 | |
| 2 | 12345 | 0 | 12345 | |
| 3 | 22222 | 0 | | |
+----+-----------+-------------+--------------+-----------+
To get this result
+-----------+-------------+--------------+-----------+
| id_public | time_post | access_token | text_send |
+-----------+-------------+--------------+-----------+
| 9876 | 2 | 1234 | |
| 12345 | 1 | 12345 | |
| 22222 | 2 | | |
+-----------+-------------+--------------+-----------+
time_post следует сортировать по минимуму
SELECT p.id_public,tp.time_post,p.access_token,p.text_send
FROM time_post tp
INNER JOIN public p
ON tp.id_public=p.id
INNER JOIN
(SELECT MAX(id) AS id FROM time_post GROUP BY id_public) AS T
ON tp.id=T.id
ORDER BY p.id_public
Выход
id_public time_post access_token text_send
9876 2 1234 (null)
12345 1 12345 (null)
22222 2 (null) (null)
демонстрация
SELECT p.id_public, min (t.time_post), p.access_token, p.text_send FROM public как p, time_post как t WHERE p.id = t.id_public group by p.id_public, p.access_token, p.text_send
Попытайтесь, я надеюсь, что это работает.
Для демонстрационной ссылки https://www.db-fiddle.com/f/46M8v9opAeVc834tZ15Vur/0#&togetherjs=nRGqfr7bdE