sql >> Databáze >  >> RDS >> Mysql

Získejte nejnovější řádek časového razítka z tabulky pomocí INNER JOIN

Je těžké říci mnoho bez znalosti kandidátních klíčů každé tabulky, ale obecně se musíte ujistit, že SELECT klauzule je funkčně závislá na GROUP BY doložka. Vzhledem k vaší formulaci problému bych navrhl něco jako:

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. Nejlepší způsob, jak provést víceřádkové vkládání v Oracle?

  2. Co je lepší:mysql_connect nebo mysql_pconnect

  3. Jak přidat kódování xml <?xml verze=1.0 kódování=UTF-8?> do výstupu xml na serveru SQL

  4. Chyba připojení k MySQL, kterou jsem nikdy neviděl