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

Wybierz wiersz z najnowszą datą na użytkownika

Zapytanie:

SQLFIDDLEExample

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

Wynik:

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

Rozwiązanie, które zadziała za każdym razem:

SQLFIDDLEExample

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy zagnieżdżone transakcje są dozwolone w MySQL?

  2. MySQL porównuje ciąg DATE z ciągiem z pola DATETIME

  3. Jak znaleźć nieistniejące dane z innej tabeli przez JOIN?

  4. MySQL:#126 – Nieprawidłowy plik klucza dla tabeli

  5. Przesyłanie strumieniowe dużych zestawów wyników za pomocą MySQL