sql >> Database >  >> RDS >> Mysql

Mysql selecteer laatste rij voor elke groep

Ten eerste moet u de kolomnaam niet escapen met een enkel aanhalingsteken, omdat het geen letterlijke tekenreeks is.
Ten tweede kunt u subquery's uitvoeren die afzonderlijk de laatste tijd voor elke c_id ophalen en voeg het weer samen met de originele tabel om de andere kolommen te krijgen.

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

of

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


  1. Laravel 4:meerdere waar met of in welsprekend

  2. Hoe converteer je een volledige MySQL-databasekarakterset en sortering naar UTF-8?

  3. Database-ontwerp:het rekeningsaldo berekenen

  4. cross-app xml-query presteert exponentieel slechter naarmate xml-document groeit