Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Nhóm theo người dùng và hiển thị mới nhất trong MYSQL không hoạt động

Như đã đề cập trong phần nhận xét cho câu trả lời của Robin , cách tiếp cận đó không đáng tin cậy vì MySQL không đảm bảo rằng nó sẽ luôn trả về trạng thái gần đây nhất từ ​​mỗi nhóm. Thay vào đó, bạn phải tham gia vào bảng của mình bằng một truy vấn con chọn trạng thái gần đây nhất (dựa trên addedDate ).

SELECT   *
FROM     status
  NATURAL JOIN (
    SELECT   userID, MAX(addedDate) as addedDate
    FROM     status
    GROUP BY userID
  ) AS mostRecent
ORDER BY addedDate DESC
LIMIT    10

Lưu ý rằng nếu người dùng có nhiều bản cập nhật trạng thái với cùng một addedDate , máy chủ sẽ trả về tất cả chúng (trong khi truy vấn của Robin sẽ trả về một truy vấn không xác định); nếu bạn cần kiểm soát một tình huống như vậy, bạn sẽ cần phải xác định cách xác định xem bản cập nhật trạng thái nào sẽ được chọn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chi phí sử dụng đĩa InnoDB

  2. Ví dụ về TIME () - MySQL

  3. Bảng SQL với mục nhập danh sách so với bảng SQL với một hàng cho mỗi mục nhập

  4. Liên kết 3 bảng trong 2 trường hợp khác nhau trong MySQL

  5. Truy vấn dữ liệu mùa xuân không hoạt động khi tham số truy vấn là một thực thể