Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

ORDER BY um ID quando houver mais IDs iguais em uma tabela


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).