sql request GROUP BY

0

У меня 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 следует сортировать по минимуму

  • 1
    добавьте ожидаемый результат для лучшего ответа
  • 0
    Ваш вопрос может быть проделан с небольшим количеством работы для примеров -1) «Первый содержит список групп». - в первой таблице нет ничего, что называется группой, 2) нет никакой связи между данными в time_posts и public, 2) «время поста», что это тогда?
Показать ещё 6 комментариев
Теги:

2 ответа

0
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)

демонстрация

http://sqlfiddle.com/#!9/fbb18/6

0

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню