Il mio tavolo titles
assomiglia a questoMySQL sono ordinati per data, con GROUP BY
id |group|date |title
---+-----+--------------------+--------
1 |1 |2012-07-26 18:59:30 | Title 1
2 |1 |2012-07-26 19:01:20 | Title 2
3 |2 |2012-07-26 19:18:15 | Title 3
4 |2 |2012-07-26 20:09:28 | Title 4
5 |2 |2012-07-26 23:59:52 | Title 5
Ho bisogno ultimo risultato di ogni gruppo ordinato per data in ordine decrescente. Qualcosa di simile
id |group|date |title
---+-----+--------------------+--------
5 |2 |2012-07-26 23:59:52 | Title 5
2 |1 |2012-07-26 19:01:20 | Title 2
ho provato
SELECT *
FROM `titles`
GROUP BY `group`
ORDER BY MAX(`date`) DESC
ma sto geting primi risultati dai gruppi. Mi piace questo
id |group|date |title
---+-----+--------------------+--------
3 |2 |2012-07-26 18:59:30 | Title 3
1 |1 |2012-07-26 19:18:15 | Title 1
Cosa sto facendo male? Questa query sarà più complicata se utilizzo LEFT JOIN?
Se sono necessarie solo le due colonne (ad esempio ID e il suo timestamp più recente), questo potrebbe funzionare: http://stackoverflow.com/a/4448536/722036. È ** più veloce ** rispetto all'utilizzo di sottoquery su una tabella enorme con milioni di righe. –