Witam potrzebuję posortować jedną tablę np wiadomości i coś mi nie zabardzo to wychodzi bo najpierw czyta najwyższe id a potem dopiero grupuje osoby i dostaję różne wyniki

id user odkogo wiadomosc


select wiadomosc from table where user='ja' group by odkogo order by id desc limit 5

Takie zapytanie wyświetla mi błedny wynik, dlatego ze nie sortuje najwyższego id wiadomości od danej osoby

może inaczej:
1. rozbiję to na 2 zapytania

select odkogo from wiadomosci where user='ja' group by odkogo limit 5

Jak już mam 5 rekordów pokolei od kogo są wiadomości to mogę teraz pobrać najwyższą

select id from wiadomości where user='ja' and odkogo='(jeden z 5 rekordow') order by id desc limit 1


i w ten sposób mam 5 najnowszych wiadomości od 5 różnych osób...
Ale czy da się to zapisać za pomocą jednego zapytania?