Il est difficile d'en dire beaucoup sans connaître les clés candidates de chaque table, mais en général il faut s'assurer que le SELECT
la clause est fonctionnellement dépendante du GROUP BY
clause. Compte tenu de votre formulation du problème, je suggérerais quelque chose comme :
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