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

MySQL truy xuất bản ghi mới nhất cho Nhóm

GROUP BY được thiết kế để sử dụng với các chức năng tổng hợp, nếu không, nó sẽ tùy ý chọn một hàng cho mỗi nhóm. Giải pháp của bạn (ở trên và trong phần tự trả lời của bạn) hoạt động vì MySQL dường như giữ hàng đầu tiên của mỗi nhóm, nhưng bạn không được đảm bảo rằng điều này sẽ luôn xảy ra.

Bạn có thể nhận được ngày nhận xét mới nhất cho mỗi post_id như thế này.

select post_id, MAX(datetime) as latest from post_comments group by post_id

Sử dụng nó để chọn nhận xét mới nhất:

SELECT t1.* FROM post_comments AS t1
JOIN (
    SELECT post_id, MAX(datetime) AS latest FROM post_comments GROUP BY post_id
) AS t2
ON t1.post_id = t2.post_id AND t1.datetime = t2.latest


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách cập nhật MySql DB bằng Flex

  2. Làm cách nào để kết nối cơ sở dữ liệu MySQL với ứng dụng ReactJS?

  3. SQL SELECT để lấy N số nguyên dương đầu tiên

  4. Làm cách nào để tôi có thể tối ưu hóa hơn nữa truy vấn bảng dẫn xuất hoạt động tốt hơn truy vấn tương đương với JOINed?

  5. Tại sao tôi cần sử dụng khóa ngoại nếu tôi có thể sử dụng WHERE?