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

Mysql chọn hàng cuối cùng cho mỗi nhóm

Đầu tiên, bạn không nên thoát khỏi tên cột với một dấu ngoặc kép vì nó không phải là chuỗi ký tự.
Thứ hai, bạn có thể thực hiện truy vấn con lấy thời gian mới nhất riêng biệt cho mỗi c_id và nối nó trở lại với bảng ban đầu để lấy các cột khác.

SELECT  a.*
FROM    message a
        INNER JOIN
        (
            SELECT  c_id, MAX(time) time
            FROM    message
            GROUP   BY c_id
        ) b ON a.c_id = b.c_id AND
                a.time = b.time

hoặc

SELECT  a.*
FROM    message a
WHERE   a.time =
        (
            SELECT  MAX(time) time
            FROM    message b
            WHERE   a.c_id = b.c_id
        ) 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hiểu lỗi đơn giản trong MySQL

  2. Chèn dữ liệu từ CSV vào MySQL DB rất chậm

  3. Ngừng sử dụng lại ID AUTO_INCREMENT của MySQL

  4. Học MySQL / MariaDB cho người mới bắt đầu - Phần 1

  5. Làm cách nào để truy xuất micro giây hoặc mili giây từ MySQL thời điểm hiện tại?