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

Chọn hàng gần đây nhất với GROUP BY trong MySQL

Bạn muốn có tối đa theo nhóm ; về bản chất, hãy nhóm bảng thanh toán để xác định các bản ghi tối đa, sau đó kết hợp lại kết quả với chính nó để tìm nạp các cột khác:

SELECT users.*, payments.method, payments.id AS payment_id
FROM   payments NATURAL JOIN (
  SELECT   user_id, MAX(id) AS id 
  FROM     payments
  GROUP BY user_id
) t RIGHT JOIN users ON users.id = t.user_id

Lưu ý rằng MAX(id) có thể không phải là " thanh toán gần đây nhất ", tùy thuộc vào ứng dụng và giản đồ của bạn:thường tốt hơn là xác định" gần đây nhất "dựa trên TIMESTAMP hơn là dựa trên các số nhận dạng tổng hợp như AUTO_INCREMENT cột khóa chính.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giải quyết lỗi liên kết truyền thông với JDBC và MySQL

  2. SQLException:Trước khi bắt đầu tập kết quả

  3. Python 3.4.0 với cơ sở dữ liệu MySQL

  4. Quyền truy cập vào vùng chứa mysql từ vùng chứa khác

  5. MySQL:chọn phần tử đầu tiên của danh sách được phân tách bằng dấu phẩy