created_at descでソートされたテーブル内のuser_id(1)のすべてのメッセージを返そうとしていますが、より新しいcreated_atに応じてsender_idまたはrecipient_idでグループ化しています。2列でMySQLグループ化
select *
from messages
where (
sender_id = 1
or recipient_id = 1
)
group by least(sender_id, recipient_id)
order by created_at desc
が、それはでグループの前で順番をやっているようだ -
messages
sender_id | recipient_id | text | created_at
1 | 2 | hey | 2017-03-26 04:00:00
1 | 2 | tees | 2017-03-26 00:00:00
2 | 1 | rrr | 2017-03-27 00:00:00
3 | 1 | edd | 2017-03-27 00:00:00
1 | 3 | cc3 | 2017-02-27 00:00:00
理想的には、それは私がこれまで持っているクエリである
2 | 1 | rrr | 2017-03-27 00:00:00
1 | 3 | cc3 | 2017-02-27 00:00:00
を返します。
助けに感謝します。
少なくとも(...) – Ibu