I want to list all a conversation pairs in my database. I've table message
where have store about message info.
I've also tried this but not work for me Link becasue distinct select only columns specified.
Ex. When $_SESSION['userid'] = 1
table message
sender_id sendto_id created(datetime)
1 2
1 2
1 3
1 4
3 1
3 1
2 4
4 2
My result have a reputations, between 1,3
and 3,1
.
sender_id sendto_id
1 2
1 3
1 4
3 1
I just want like this and let's it chooses newest added field for each pairs.
Ex. 1-2(1)
,1-2(2)
and 2-1
it should be 2-1
if 2-1
is newest or 1-2(2)
if it newest.
sender_id sendto_id created(datetime)
2 1 newest of pair 1-2 or 2-1
1 3 newest of pair 1-2 or 2-1
1 4 newest of pair 1-2 or 2-1
And my SQL here, please help! thank you.
select m.*,
(select MAX(created)
from message n
where (n.senderid = m.sendtoid AND n.sendtoid = '$userid')
OR (n.senderid = '$userid' AND n.sendtoid = m.sendtoid)) lastsend
from message m
where (m.senderid = '$userid' OR m.sendtoid = '$userid')
group by m.senderid, m.sendtoid
order by lastsend desc