Выбор записи из БД SQL с максимальным id, при условии что значения не должны дублировать и могут находиться в 2 разных столбцах
Помогите разобраться Есть таблица private_chat. В таблице есть столбцы: id, user_from, user_to.
Таблица представляет собой урезанную версию участников чата(отправитель, получатель).
**Суть задачи** - выбрать строки с максимальным *id* каждой пары,
если user_from = user_to && user_to = user_from
**Имеем следующий набор данных**:
id user_from user_to
1 misha vasya
2 misha vasya
3 misha vasya
4 misha vasya
5 vasya misha
6 misha user_cat
Далее я делаю запрос:
SELECT
t.*,
`users`.user_icon,
`private_setting`.status,
`private_setting`.status_check
FROM private_chat t
INNER JOIN (SELECT
`private_chat`.user_from,
`private_chat`.user_to,
`users`.user_login,
MAX(`private_chat`.id) AS id
FROM private_chat,
users
WHERE `private_chat`.user_from = 'misha' OR `private_chat`.user_to = 'misha'
GROUP BY `private_chat`.user_from,
`private_chat`.user_to) q
ON q.user_from = t.user_from
AND q.id = t.id
INNER JOIN users
ON t.user_from = `users`.user_login
INNER JOIN `private_setting`
ON t.user_from = `private_setting`.user
и получаю вот такой результат:
id user_from user_to
4 misha vasya
5 vasya misha
6 misha user_cat
А хочу получить вот такой
id user_from user_to
5 vasya misha
6 misha user_cat