Php 如何获取每个用户之间最后一行对话的结果?

Php 如何获取每个用户之间最后一行对话的结果?,php,mysql,Php,Mysql,嗨, 请从下面的查询中找到我的表响应,我从中获得上述1对1聊天信息的响应 mes_id subject mem_id frm_id 55 Hi 329 401 72 Re: HI yhi 689 401 83 Re: HEY HI 401 329 68 HI yhi 401 689 59 Hi

嗨, 请从下面的查询中找到我的表响应,我从中获得上述1对1聊天信息的响应

mes_id  subject      mem_id       frm_id
55      Hi           329          401
72      Re: HI yhi   689          401
83      Re: HEY HI   401          329
68      HI yhi       401          689
59      Hi           401          1734
我只想要包含mes_id 59,72,83的响应,这是两个用户之间的最后一次对话

请帮忙 谢谢。

试试这个

SELECT mes_id,SUBJECT,mem_id,frm_id
FROM messages_system_new
WHERE frm_id = '401' AND mem_id !='401'
    AND trashed_user NOT LIKE '%401%'
    AND TYPE = 'message'
    AND FOLDER != 'saved' GROUP BY mem_id
    UNION ALL 
    SELECT mes_id,SUBJECT,mem_id,frm_id
FROM messages_system_new
WHERE mem_id = '401' AND frm_id !='401'
    AND trashed_user NOT LIKE '%401%'
    AND TYPE = 'message'
    AND FOLDER != 'saved' GROUP BY frm_id


感谢您的回复,但这是针对用户401的,那么我应该在哪里输出该值?您对用户401的输出值是什么意思?我的意思是,现在我使用用户id 401登录,因此我想要与我的用户进行的所有最新对话friends@user1743213但是用这个会让我失去与689的对话(
SELECT *
FROM   Table1
WHERE (LEAST(mem_id, frm_id), GREATEST(mem_id, frm_id), mes_id) IN
  (
      SELECT  LEAST(mem_id, frm_id) as x, 
              GREATEST(mem_id, frm_id) as y, 
              MAX(mes_id) as msg_time
      FROM Table1
      GROUP BY x, y
  )
ORDER BY Mes_ID
select t.*
from
    table1 t
    inner join (
        select  max(mes_id) as mes_id
        from table1
        group by least(mem_id, frm_id), greatest(mem_id, frm_id)
  ) s on t.mes_id = s.mes_id
where mem_id = 401 or frm_id = 401
order by mes_id