NurrE Geschrieben 22. April 2005 Geschrieben 22. April 2005 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
Fabi Geschrieben 22. April 2005 Geschrieben 22. April 2005 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.
NurrE Geschrieben 22. April 2005 Autor Geschrieben 22. April 2005 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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden