Queremos o mais novo poste em cada único thread, podemos fazer isso por...
Usando
GROUP BY
e HAVING
. SELECT *
FROM Posts
JOIN Discussions
on Discussions.discussion_id = Posts.discussion_id
GROUP BY Discussions.discussion_id
HAVING Posts.post_time = max(Posts.post_time)
ORDER BY Posts.post_time DESC
Este é um exemplo ! Certifique-se de usá-lo para modificar o seu próprio, é bastante simples. Não tenho um banco de dados para testar isso, mas fui testado com meus próprios dados e colunas diferentes e funcionou.
Observação: Isso pressupõe que cada Id seja idêntico em ambas as tabelas. Ele também assume que post_time é algum valor de tempo que aumenta quanto mais recente for a postagem (ou seja, SQL Timestamp).