Abfrage gruppieren

switchy

Grünschnabel
Hallo,

ich möchte in meinem Forum die Ausgabe der Beiträge so gruppieren, dass ich immer den Beitrag auf den die letzte Antwort eingegangen ist ganz oben stehen habe. Hab es mit folgendem Befehl versucht, bekomme aber nicht alle Einträge mit der höchsten (Autoren-)id eines Themas angezeigt:

SELECT id, titel, antwortid, autor, MAX( id ) AS max_id
FROM er_sucht_sie
WHERE antwortid !=0
GROUP BY antwortid DESC
 
Beim Gruppieren werden Datensätze zusammengefasst und so können über einzelne Spalten Aggregatfunktionen durchgeführt werden, wie Min, Max, Sum oder Count.

Was du erreichen möchtest scheint mir eher eine Sortierung.
Absteigend sortieren kann man mit ORDER BY Spaltenname DESC.
Aufsteigend mit ASC.

Dein Bespiel
SELECT id, titel, antwortid, autor
FROM er_sucht_sie
WHERE antwortid <>0
ORDER BY id DESC
 
x_Red_Eagle_x hat gesagt.:
Lass mal die MAX( id ) AS max_id weg

mfg

so hab ich es auch schon versucht, dann bekomme ich von 4 gruppierten Datensätzen 2 mit der letzten antwort auf den beitrag und 2 mit der ersten antwort auf den beitrag ausgegeben.


mage hat gesagt.:
.

Dein Bespiel
SELECT id, titel, antwortid, autor
FROM er_sucht_sie
WHERE antwortid <>0
ORDER BY id DESC

wenn ich hier noch eine funktionierende gruppierung reinbringen könnte wäre es perfekt.
 
also eine SQL Anweisung wird immer von links nach rechts abgearbeitet und es ist leider nicht möglich
innerhalb von group by zu sortieren - erst werden die gruppen erstellt dann sortiert

beispiel:
wert gruppe info
1 3 a
5 3 b
3 3 c
4 5 d
7 5 e
1 5 g

ein select max(wert) as hi,wert,info from tabelle group by gruppe order by hi
wird sowas rauswerfen:
5 1 a
7 4 d

leider kommt man so nicht an die info b innerhalb der gruppe 3 heran :-(
und so wie deine Frage verstanden habe möchtest du das aber ....

Das lässt sich nur mit einem Subselect machen - nur wenn du mysql 3.x hast entfällt das wegen Bodennebel.
 

Neue Beiträge

Zurück