[英]How to group by two columns in Database?
我想在數據庫中列出所有對話對。 我將表message
存儲在有關消息信息的存儲位置。
我也嘗試過此方法,但對我不起作用,因為指定的唯一選擇列是鏈接 。
防爆。 當$_SESSION['userid'] = 1
表消息
sender_id sendto_id created(datetime)
1 2
1 2
1 3
1 4
3 1
3 1
2 4
4 2
我的結果聲望介於1,3
和3,1
之間。
sender_id sendto_id
1 2
1 3
1 4
3 1
我只想這樣,讓我們為每對選擇最新添加的字段。 防爆。 1-2(1)
1-2(2)
和2-1
它應該是2-1
如果2-1
是最新或1-2(2)
如果它最新。
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
還有我的SQL,請幫忙! 謝謝。
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
這是你想要的嗎?
select least(sender_id, sendto_id) as sender_id,
greatest(sender_id, sendto_id) as sendto_id,
min(created_datetime)
from message m
group by least(sender_id, sendto_id), greatest(sender_id, sendto_id);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.