как получить не одно последнее сообщение с каждым пользователем, а несколько? жестко заданное количество например по три последних сообщений с каждым пользователем
такой вариант даст только по одному последнему
INSERT INTO messages (id, from_id, to_id, text) VALUES
(1, 1, 2, 'from 1 to 2 #1'),
(2, 1, 2, 'from 1 to 2 #2'),
(3, 2, 1, 'from 2 to 1 #1'),
(4, 2, 1, 'from 2 to 1 #2'),
(5, 3, 1, 'from 3 to 1 #1'),
(6, 3, 1, 'from 3 to 1 #2'),
(7, 1, 3, 'from 1 to 3 #1'),
(8, 1, 3, 'from 1 to 3 #2'),
(9, 3, 2, 'from 3 to 2 #1'),
(10, 2, 3, 'from 2 to 3 #1');
SELECT max_ids.visavis_id AS visavis_id,
messages.id AS id,
messages.text AS text
FROM messages
INNER JOIN (
SELECT
CASE
WHEN from_id = 1 THEN to_id
WHEN to_id = 1 THEN from_id
ELSE -1
END AS visavis_id,
MAX(id) AS id
FROM messages
WHERE from_id = 1 or to_id = 1
GROUP BY visavis_id) max_ids
ON (messages.id = max_ids.id);
visavis_id | id | text
------------------------------------------
2 | 4 | "from 2 to 1 #2"
3 | 8 | "from 1 to 3 #2"
а нужно например по 5
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.