Como você pode
GROUP BY id_thread
quando não há id_thread
coluna na sua tabela? SELECT *
FROM contacts
WHERE id_receiver = 1
--- GROUP BY id_thread
--- removed
ORDER BY created DESC
LIMIT 1 --- only show one row
Com base em seus comentários, o que você quer é o mais recente (ordenado por
created
) para cada id_thread
, que é uma consulta diferente e mais complexa. Existe até uma tag para esse tipo de consulta, chamada [greatest-n-per-group]
. SELECT c.*
FROM contacts AS c
JOIN
( SELECT id_thread, MAX(created) AS created
FROM contacts
WHERE id_receiver = 1
GROUP BY id_thread
) AS g
ON (g.id_thread, g.created) = (c.id_thread, c.created)
WHERE c.id_receiver = 1