Mysql
 sql >> Base de données >  >> RDS >> Mysql

Récupérer la dernière ligne d'horodatage de la table à l'aide de INNER JOIN

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