Ich habe die folgende Tabelle:Wählen Sie die 3 letzten Datensätze, bei denen die Werte einer Spalte verschieden sind
id time text otheridentifier
-------------------------------------------
1 6 apple 4
2 7 orange 4
3 8 banana 3
4 9 pear 3
5 10 grape 2
Was ich die drei letzten Aufzeichnungen machen wollen (nach Zeit ab) wird ausgewählt, deren otheridentifier
s sind verschieden. Also in diesem Fall, wäre das Ergebnis id
‚s sein: 5, 4 und 2.
id
= 3 würde übersprungen werden, weil es mit dem gleichen otheridentifier
Feld ein neueres Rekord ist.
Hier ist, was ich versuchte zu tun:
SELECT * FROM `table` GROUP BY (`otheridentifier`) ORDER BY `time` DESC LIMIT 3
Aber ich Reihen von id
am Ende immer = 5, und statt 5, 4, 2, wie erwartet.
Kann mir jemand sagen, warum diese Abfrage nicht das ergibt, was ich erwartet habe? Ich habe versucht, die ORDER BY zu ASC ändern, aber dies einfach umordnet die zurückgegebenen Zeilen auf 1, 3, 5.
ich die Zeit, die ich Stunden wie diese zu beheben verbrachte erinnerte SQL- und stellt sich heraus, mysql ist 4.0 nicht verschachtelte Abfragen unterstützen; p – Unreality
@Unreality: Fortu Die meisten Lösungen mit Unterabfragen können bei Bedarf als Joins ausgedrückt werden. :) – Rytmis
Ja, aber diejenigen mit ORDER/LIMIT sind _nicht_ einfach ausgedrückt von JOIN ... –