2016-05-07 3 views
1

У меня есть запросПолучить последнюю запись на LEFT JOIN таблицы

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 есть несколько записи для одной станции при выполнении запроса выше я получаю первую запись из chat_message, соответствующей каждый station_id. Как я могу получить последнюю запись из chat_message пока оставил присоединение к chat_message с станцией

заранее благодарю

ответ

2

Как я понял, у вас есть данные, такие как, enter image description here

и вам нужно запросить как это,

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)

enter image description here

Смежные вопросы