Zum Inhalt springen

SELECT mit GROUP BY, aber nur neuesten Datensatz ausgeben!


NurrE

Empfohlene Beiträge

Hallo Leute,

ich steh vor nem Problem das ich bisher - auch mit Hilfe von anderen Foren - noch nicht elegant lösen konnte.

Es geht darum, dass User in einer WebEingabemaste Einträge verfassen können, und diese auch immer eine Art "Zugehörigkeits-Nummer" bekommen (keine ID der DB, sondern mehr so eine Sortiernummer).

Wenn ein Eintrag mit einer Nummer gemacht wird, die schon besteht, so wird der bestehende Beitrag nicht gelöscht, sondern ein neuer Angelegt und in Ausgabe (Tabellarisch) kommen dann nur die Einträge zur Nummer, die das aktuellste Datum haben.

Zu allen Beitägen, die einer Nummer zugehören, gelangt man dann über einen Link.

Nun mein Problem ist, dass ich zwar über GROUP BY die Nummern gruppieren kann und über MAX(datum) das zugehörige aktuelle Datum bekomme aber dann nicht den zum aktuellsten Datum zugehörigen Beitrag (also alle sonstigen Felder). Selbst die wildesten Sortierungen (ASC und DESC) haben nicht geholfen!


SELECT `ifc_content`.`1` , max( `ifc_content`.`2` ) , `ifc_content`.`3` , `ifc_content`.`4` , `ifc_content`.`5` , `ifc_content`.`73` , `ifc_content`.`74` , `ifc_content`.`77` , `ifc_content`.`78` , `ifc_content`.`79` , `ifc_content`.`85` , `ifc_content`.`86` , `ifc_content`.`87` , dat_user.u_unumber, dat_group.g_groupname, 

DATE_FORMAT( max( `ifc_content`.`2` ) , '%d.%m.%Y %H:%i:%s' ) AS datum_f

FROM `ifc_content` , `dat_user` , `dat_group` 

WHERE `ifc_content`.`1` = `dat_user`.`u_id` 

AND `ifc_content`.`4` = `dat_group`.`g_id` 

GROUP BY `ifc_content`.`3` DESC 

ORDER BY `1` ASC 

Da die Spalten quasi dynamisch angelegt sind haben sie keine Namen sondern Nummern... die Nummern sind die IDs von angelegten Datensätzen in einer anderen Tabelle, die dann die Spalteninhalte (Name, Typ, ...) beschreiben.

2 ist Datum und 1 ist Autor, 3 ist die interne Nummer, nach der gruppiert werden soll...

vielleicht hat ja jemand eine Idee?!

Meine Idee ist es vielleicht noch, eine extra Spalte anzulegen die "mod" heisst, und immer wenn ein neuer Eintrag gemacht wird, wird in dem bestehenden Eintrag das "mod" auf 1 gesetzt.

Dann muss ich nur noch nach "mod = 0" suchen? was haltet ihr davon?

Grüße Flo

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es ist jetzt zwar schwer das anchzuvollziehen, aber du hast order by 1 und nicht by 2.

Wenn du nach dem Datum absteigend sortierst, dann kriegst du das Aktuellste.

Dann noch "Limit 1" hinten dran hängen und du hast genau einen Datensatz.

Aber vielleicht hab ichs jetzt auch bloß nicht verstanden, dann entschuldige mich bitte.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi...

zum ORDER BY geb ich dir recht, es funktioniert aber auch so nicht, weil das GROUP By "stärker" ist...

LIMIT bringt nix, weil ich ja alle Datensätze haben will, davon aber nur die mit den aktuellsten Daten.

Habs jetzt über das "flag" gelöst, teste also auf den "mod", wenn das 0 ist ist ein aktueller Eintrag, wenn 1 dann ein alter für die History

Danke trotzdem... wenn jemand ne gute Lösung hat würds mich trotzdem interessieren :P

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...