Bạn có thể làm điều này:
SELECT
ser.id,
ser.name,
s.status,
s.timestamp
FROM Service ser
INNER JOIN status as s ON s.service_id = ser.id
INNER JOIN
(
SELECT
service_id,
MAX(timestamp) AS MaxDate
FROM status
GROUP BY service_id
) AS a ON a.service_id = s.service_id
AND a.MaxDate = s.timestamp;
Kết hợp với truy vấn con:
SELECT
service_id,
MAX(timestamp) AS MaxDate
FROM status
GROUP BY service_id
Sẽ loại bỏ tất cả các trạng thái ngoại trừ trạng thái có ngày mới nhất.