sql >> Databasteknik >  >> RDS >> Mysql

Välj rad med senaste datum per användare

Fråga:

SQLFIDDLEExempel

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

Resultat:

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

Lösning som kommer att fungera varje gång:

SQLFIDDLEExempel

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. Fel vid skapande av unaccent-tillägg på PostgreSQL

  2. SAP Lumira och JDBC-ODBC Bridge

  3. Hur skapar man en Postgres-tabell med unik kombinerad primärnyckel?

  4. Hur man får tiden från en sträng i MySQL