sql >> Databasteknik >  >> RDS >> Mysql

Hämta den senaste tidsstämpelraden från tabellen med INNER JOIN

Det är svårt att säga mycket utan att känna till kandidatnycklarna för varje tabell, men i allmänhet måste du se till att SELECT satsen är funktionellt beroende av GROUP BY klausul. Med tanke på din formulering av problemet skulle jag föreslå något i stil med:

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


  1. Skriptet kommer inte att logga in

  2. Spatial Index i MySQL - ERROR - Kan inte hämta geometriobjekt från data du skickar till GEOMETRY-fältet

  3. Jboss mysql - Ingen lämplig drivrutin hittades för jdbc

  4. Hur man får tillbaka *allt* från en lagrad procedur med JDBC