Ho la seguente tabella:Selezionare i 3 dischi più recenti in cui i valori di una colonna sono distinte
id time text otheridentifier
-------------------------------------------
1 6 apple 4
2 7 orange 4
3 8 banana 3
4 9 pear 3
5 10 grape 2
Quello che voglio fare è selezionare i 3 dischi più recenti (dal tempo decrescente), il cui otheridentifier
s sono distinti. Quindi, in questo caso, il risultato sarebbe id
's: 5, 4, e 2.
id
= 3 sarebbe saltato perché c'è un disco più recente con lo stesso otheridentifier
campo.
Qui è quello che ho cercato di fare:
SELECT * FROM `table` GROUP BY (`otheridentifier`) ORDER BY `time` DESC LIMIT 3
Tuttavia, finisco per ottenere file di id
= 5, , e invece di 5, 4, 2 come previsto.
Qualcuno può dirmi perché questa query non restituirà ciò che mi aspettavo? Ho provato a modificare l'ORDER BY in ASC, ma questo semplicemente riorganizza le righe restituite a 1, 3, 5.
mi sono ricordato il tempo che ho passato ore a fissare sQL come questo e risulta MySQL 4.0 non supporta le query nidificate; p – Unreality
@Unreality: Fortu nativamente la maggior parte delle soluzioni che coinvolgono le subquery possono essere espresse come join se necessario. :) – Rytmis
Sì, ma quelli con ORDER/LIMIT sono _non_ facilmente espressi da JOIN ... –