Группировка по избегает порядка по - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь перечислить сообщения по циклу, как в первую очередь последние сообщения в PDO, но у меня есть команда по команде тоже в sql, и это не работает также.Я использую группу, чтобы избежать нескольких сообщений на странице от одного и того же пользователя.Таким образом, пользователь должен видеть сообщения как DESC, но группировка по ним избегает ранжирования.

сообщения должны быть перечислены как (пример):

conversation 1: last message - from
conversation 2: last message - from
conversation 3: last message - from

каждый разговор должен содержать уникальное имя отправителя и разговорыс новыми сообщениями должно быть вверху (DESC)

мой sql код:

SELECT * 
FROM pm 
WHERE pm_to={$session['id']} 
GROUP BY pm_from 
ORDER BY id DESC

Структура pm_table:

id         - int(11) auto_increment
pm_from    - int(11)
pm_to      - int(11)
pm_content - text

1 Ответ

0 голосов
/ 02 января 2019

Для выбора последнего сообщения от каждого пользователя данному пользователю ($ session ['id']) вам необходимо:

  1. Получить список последних идентификаторов каждого разговора
  2. Получить полный список сообщений

Я написал SQL-запрос, который должен это сделать.

SELECT pm.* 
FROM pm
JOIN (SELECT MAX(id) AS id_pm
      FROM pm
      WHERE pm_to={$session['id']}
      GROUP BY pm_from) DT1
ON DT1.id_pm = pm.id
ORDER BY id DESC
...