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

Vyberte řádek s nejnovějším datem na uživatele

Dotaz:

Příklad SQLFIDDLE

SELECT t1.*
FROM lms_attendance t1
WHERE t1.time = (SELECT MAX(t2.time)
                 FROM lms_attendance t2
                 WHERE t2.user = t1.user)

Výsledek:

| ID | USER |       TIME |  IO |
--------------------------------
|  2 |    9 | 1370931664 | out |
|  3 |    6 | 1370932128 | out |
|  5 |   12 | 1370933037 |  in |

Řešení, které bude fungovat vždy:

Příklad SQLFIDDLE

SELECT t1.*
FROM lms_attendance t1
WHERE t1.id = (SELECT t2.id
                 FROM lms_attendance t2
                 WHERE t2.user = t1.user            
                 ORDER BY t2.id DESC
                 LIMIT 1)


  1. Naučte se MySQL / MariaDB pro začátečníky – část 1

  2. Začínáme s PostgreSQL 11 na Ubuntu 18.04

  3. Nástroje pro správu SQL Server 2017

  4. Jak zřetězit řetězce v PostgreSQL