Mysql 正在检索加入3个表时的最后一条消息

Mysql 正在检索加入3个表时的最后一条消息,mysql,Mysql,我目前正在从3个不同的表中检索数据。其中一个表包含发送的与每个ID相关的消息 我目前正在尝试做但没有成功的事情是检索每个ID记录上的最后一条消息 请帮忙- select C.id , C.business, AP.firstname, AP.lastname, M.comments, M.dateread from claims C JOIN affected_people AP ON C.ID = AP.claimid joi

我目前正在从3个不同的表中检索数据。其中一个表包含发送的与每个ID相关的消息

我目前正在尝试做但没有成功的事情是检索每个ID记录上的最后一条消息

请帮忙-

select
   C.id ,
   C.business,
   AP.firstname,
   AP.lastname,
   M.comments,
   M.dateread 
from
   claims C 
JOIN
   affected_people AP 
      ON C.ID = AP.claimid 
join
   Messages M 
      on M.claimid = C.ID
加上

Order by M.dateread desc

不确定,如果这对mysql有效:

select *
from(
    select
       C.id ,
       C.business,
       AP.firstname,
       AP.lastname,
       M.comments,
       M.dateread,
       max(M.dateread) over (partition by c.id)  max_dateread
    from
       claims C 
    JOIN
       affected_people AP 
          ON C.ID = AP.claimid 
    join
       Messages M 
          on M.claimid = C.ID)
          where max_dateread=dateread

或者只是四处寻找答案,或者,如果你愿意,考虑下面这个简单的两步行动:1。如果您还没有这样做,请提供适当的DDL(和/或SQLFIDLE),以便我们可以更轻松地复制问题。2.如果您尚未这样做,请提供与步骤1中提供的信息相对应的所需结果集。您好,谢谢您的消息。我已经搜索了好几个线程,但还没有找到一个具有正确组合代码的线程,可以提供所需的结果。HoldaysHi快乐,感谢您的回复。不幸的是,我在(按c.id分区)上使用此代码
max(M.date)时遇到服务器版本错误#1064
。我试着去摆弄它,但在10-15分钟后,我还是没能很快找到它。无论如何,谢谢,节日快乐。这会改变返回内容的顺序,但问题是要检索最后一条消息,而不是按相反的时间顺序检索消息。