1

我有一个查询

SELECT cm.posted_at, s.id, s.name, s.device, co.status, co.last_seen, d.device_id 
FROM station s LEFT JOIN chat_online co 
ON s.id = co.station_id AND s.device = co.device_id 
LEFT JOIN device d ON s.device=d.id 
LEFT JOIN chat_message cm ON cm.station_id=s.id 
WHERE s.status='1' AND (co.role='station' OR co.role IS NULL) 
GROUP BY s.id 
ORDER BY cm.posted_at DESC

在执行上述查询时,chat_message 中有一个站点的多个条目,我得到了与每个 station_id 对应的 chat_message 的第一个条目。如何在离开加入与站的聊天消息时检索聊天消息的最后一个条目

预先感谢

4

1 回答 1

2

据我了解,您有类似的数据, 在此处输入图像描述

你需要像这样查询,

select cm.posted_at, s.id, s.name, s.device from station s
JOIN      (
              SELECT    MAX(posted_at) posted_at,stationId
              FROM      chat_message 
              GROUP BY  stationId
          ) cm ON (cm.stationId = s.id)

在此处输入图像描述

于 2016-05-07T06:07:31.150 回答