Mysql
 sql >> база данни >  >> RDS >> Mysql

Mysql изберете последния ред за всяка група

Първо, не трябва да избягвате името на колоната с единични кавички, тъй като не е низов литерал.
Второ, можете да направите подзаявка, която отделно получава най-новото време за всеки c_id и го свържете обратно с оригиналната таблица, за да получите останалите колони.

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

или

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. Използване на правилния или за предпочитане, неравен оператор в MySQL

  2. Автоматично довършване в MySQL под Windows

  3. Каква функция да използвате за хеширане на пароли в MySQL?

  4. Проблеми с часовата зона на Java MySQL Timestamp

  5. Не е намерен подходящ драйвер за 'jdbc:mysql://localhost:3306/mysql