Trudno powiedzieć wiele bez znajomości kluczy kandydujących każdej tabeli, ale ogólnie musisz upewnić się, że SELECT
klauzula jest funkcjonalnie zależna od GROUP BY
klauzula. Biorąc pod uwagę sformułowanie problemu, sugerowałbym coś takiego:
SELECT e.name,e.illness, e.patient_id,e.patient_image,e.area, e.arduino_mac,
l.arduino_mac, l.latitude, l.longitude, l.timestamp as ts
FROM elderly1 e
JOIN ( SELECT l1.arduino_mac, l1.latitude, l1.longitude, l1.timestamp
FROM location l1
WHERE timestamp = ( SELECT MAX(timestamp)
FROM LOCATION l2
WHERE l1.arduino_mac = l2.arduino_mac )
) as l
on e.arduino_mac = l.arduino_mac
ORDER BY l.timestamp