NurrE Geschrieben 22. April 2005 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Fabi Geschrieben 22. April 2005 Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
NurrE Geschrieben 22. April 2005 Autor Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.