MySQL: Datensätze in einer Gruppe sortieren
lixx
- datenbank
0 Ilja0 lixx0 Vinzenz Mai0 lixx
0 Ilja
Hallo!
Ich habe eine Frage zur Sortierung von gruppierten Datensätze in MySQL 4.1.
In der Datenbank sind Datensätze mit einem Zeitstempel. Diese werden mit GROUP BY nach einer Kategorie gruppiert und mit ORDER BY nach Datum absteigend (also neuester zuerst) sortiert. Soweit so gut. Nun ist es aber so, dass anscheinend erst nach dem Gruppieren sortiert wird.
Wie krieg ich es zusammen, dass die Datensätze in den Gruppen sortiert werden und mir jeweils die neueste Kategorie angezeigt wird?
lg lixx
yo,
Wie krieg ich es zusammen, dass die Datensätze in den Gruppen sortiert werden und mir jeweils die neueste Kategorie angezeigt wird?
ich vermute mal, die abfrage geht über mehr als eine tabelle und in einer dieser tabellen stehen die jeweiligen kategorien mit einer spalte für den kategorienahmen und eine spalte für den timestamp. dann könntest du zuerst den timestamp in die gruppierung reinnehmen und dann den kategorienamen:
SELECT .....
FROM tabelle_kategorie k
INNER JOIN ....
WHERE....
GROUP BY k.timestamp, k.kategoriename
Ilja
Wie krieg ich es zusammen, dass die Datensätze in den Gruppen sortiert werden und mir jeweils die neueste Kategorie angezeigt wird?
ich vermute mal, die abfrage geht über mehr als eine tabelle und in einer dieser tabellen stehen die jeweiligen kategorien mit einer spalte für den kategorienahmen und eine spalte für den timestamp. dann könntest du zuerst den timestamp in die gruppierung reinnehmen und dann den kategorienamen:
SELECT .....
FROM tabelle_kategorie k
INNER JOIN ....
WHERE....
GROUP BY k.timestamp, k.kategoriename
Hi!
Es gibt leider nur diese eine Tabelle. Wenn ich von Gruppe spreche sind das Kattegorien, die durch GROUP BY gruppiert sind ... etwas verwirrend ;) Ich habe dann mehrere Kategorien in einer Gruppe und dabei soll die neu Angelete zuerst zeigen.
Hallo
Es gibt leider nur diese eine Tabelle. Wenn ich von Gruppe spreche sind das Kattegorien, die durch GROUP BY gruppiert sind ... etwas verwirrend ;) Ich habe dann mehrere Kategorien in einer Gruppe und dabei soll die neu Angelete zuerst zeigen.
sieht nach einer Anwendung für korrelierte Unterabfragen aus:
</archiv/2006/7/t133015/#m861544>
http://dev.mysql.com/doc/refman/4.1/en/correlated-subqueries.html
Freundliche Grüße
Vinzenz
sieht nach einer Anwendung für korrelierte Unterabfragen aus:
Ja! Mit ein paar Anpassungen dürfte es das gewesen sein.
Danke für die Tipps
&
lg lixx
yo,
Es gibt leider nur diese eine Tabelle. Wenn ich von Gruppe spreche sind das Kattegorien, die durch GROUP BY gruppiert sind ... etwas verwirrend ;)
so weit ist es nicht verwirrend. du bildest eben eine gruppierung über eine spalte der tabelle.
Ich habe dann mehrere Kategorien in einer Gruppe und dabei soll die neu Angelete zuerst zeigen.
jetzt wird es verwirrend, wenn du nach den kategorien gruppierst, dann hast du eben nur eine kategorie in einer gruppe, die sicherlich mehrere datensätze beinhaltet, aber eben nur ein und dieselbe kategorie.
gruppiereungen werden oft falsch verstanden, besonders bei mysql. es gibt eine goldene regel dabei zu beachten: nur spalten auszugeben, über die man auch gruppiert hat oder die aggregat-funktionen benutzen. mysql geht mit der umsetzung leider einen anderen weg.
poste doch mal ausschintte deiner tabelle mit deiner abfrage und welches ergebnis du haben willst. dann wird es einfacher zu verstehen, was du suchst.
Ilja