sql >> Database teknologi >  >> RDS >> Mysql

Hent den seneste tidsstempelrække fra tabellen ved hjælp af INNER JOIN

Det er svært at sige meget uden at kende kandidatnøglerne for hver tabel, men generelt skal du sørge for, at SELECT klausulen er funktionelt afhængig af GROUP BY klausul. I betragtning af din formulering af problemet vil jeg foreslå noget som:

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. SQL Server - opret forbindelse med Windows-godkendelse

  2. ORA-65139:Uoverensstemmelse mellem XML-metadatafil og datafil

  3. Hvordan importerer man en Excel-fil til SQL Server?

  4. Sådan returnerer du antallet af sekunder efter midnat i Oracle-databasen