Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Pobierz ostatni wiersz sygnatury czasowej z tabeli za pomocą INNER JOIN

Trudno powiedzieć wiele bez znajomości kluczy kandydujących każdej tabeli, ale ogólnie musisz upewnić się, że SELECT klauzula jest funkcjonalnie zależna od GROUP BY klauzula. Biorąc pod uwagę sformułowanie problemu, sugerowałbym coś takiego:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Aktualizacja wielu wierszy w MySQL

  2. SQLAlchemy - Pobieranie listy tabel

  3. Czy w MySQL mogę skopiować jeden wiersz, aby wstawić go do tej samej tabeli?

  4. Jak na wyłączność zablokować bazę mysql?

  5. Jak zrobić stronicowanie, gdy UNION jest używany w MySQL?