För det första bör du inte undkomma kolumnnamnet med enstaka citattecken eftersom det inte är bokstavligt sträng.
För det andra kan du göra en delfråga som separat får den senaste tiden för varje c_id
och slå ihop den med den ursprungliga tabellen för att få de andra kolumnerna.
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
)