For det første bør du ikke undslippe kolonnenavnet med et enkelt anførselstegn, da det ikke er strengt bogstaveligt.
For det andet kan du lave underforespørgsler, som separat får den seneste tid for hver c_id
og sæt den sammen med den oprindelige tabel for at få de andre kolonner.
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
eller
SELECT a.*
FROM message a
WHERE a.time =
(
SELECT MAX(time) time
FROM message b
WHERE a.c_id = b.c_id
)