#1 8. September 2011 Mysql-Abfrage "GROUP BY x ORDER BY y" Hey Leute, ich versuche eine Abfrage zu erstellen die aus einer Tabelle zusammengehörende Beiträge anhand der ID gruppiert, aber SO sortiert, dass mir immer der LETZE angezeigt wird. Mein erstellter Query: PHP: SELECT * FROM table GROUP BY id ORDER BY datum DESC Hat jemand eine Idee wie man das lösen kann? Gruß Blackb!rd + Multi-Zitat Zitieren
#2 8. September 2011 AW: Mysql-Abfrage "GROUP BY x ORDER BY y" Wenn ich das richtig verstehe, willst du NUR den letzten angezeigt bekommen, oder wie? + Multi-Zitat Zitieren
#4 8. September 2011 AW: Mysql-Abfrage "GROUP BY x ORDER BY y" Hey, ich habe mich wohl etwas unverständlich ausgedrückt: Es gibt viele Beiträge zu zB einem Thema. Die ID die ich gruppiere ist in dem Fall die Themen ID. Das heißt ich habe 5 Einträge zum Thema 1, 10 zum Thema 2. Jetzt möchte ich 2 Ergebnisse haben den letzen Eintrag zu Thema 1 und den letzen Eintrag zu Thema 2. Hoffe das war jetzt verständlicher Gruß Blackb!rd + Multi-Zitat Zitieren
#5 8. September 2011 AW: Mysql-Abfrage "GROUP BY x ORDER BY y" hi, probier das mal PHP: SELECT id , uid , MAX ( datum ) AS datumFROM ` tabelle ` GROUP BY uidORDER BY datum DESC // test ausgabe id uid datum4 2 2011 -09-08 19 : 42 : 313 37 2011 -09-08 19 : 42 : 271 1 2011 -09-08 19 : 42 : 23 MAX () ermittelt den höchsten wert einer numerischen spalte. was MIN() ist, ist dann auch klar + Multi-Zitat Zitieren
#6 8. September 2011 AW: Mysql-Abfrage "GROUP BY x ORDER BY y" ICh dachte fast es geht, aber er liest NUR das datum von dem aktuellsten Datensatz aus und nimmt die restlichen informationen von einem bliebigen Datensatz. Aber guter Anstatz Gruß Blackb!rd + Multi-Zitat Zitieren
#7 9. September 2011 AW: Mysql-Abfrage "GROUP BY x ORDER BY y" mist hast recht PHP: id uid datum 1 1 2011 -09-08 19 : 42 : 23 id 1 ist nicht richtig // edit hab folgendes dazu gefunden + Multi-Zitat Zitieren
#8 9. September 2011 AW: Mysql-Abfrage "GROUP BY x ORDER BY y" Code: SELECT DISTINCT MAX(s.`id`) AS `id`, MAX(s.`datum`) AS `datum`, s.`uid` FROM `tabelle` AS s GROUP BY s.`uid` ASC ORDER BY s.`datum` DESC funktioniert bei mir ohne probleme. oder ich versteh das problem nicht. dieser query liefert den jeweils aktuellsten eintrag (id, datum) gruppiert nach uid bespiel: Code: mysql> SELECT * FROM tabelle; +----+-----+------------+ | id | uid | datum | +----+-----+------------+ | 1 | 1 | 1315600962 | | 2 | 2 | 1315600962 | | 3 | 1 | 1315600978 | | 4 | 2 | 1315600978 | | 5 | 3 | 1315601255 | +----+-----+------------+ 5 rows in set (0.00 sec) Code: mysql> SELECT -> DISTINCT -> -> MAX(s.`id`) AS `id`, -> MAX(s.`datum`) AS `datum`, -> s.`uid` -> -> FROM `tabelle` AS s -> GROUP BY s.`uid` ASC -> ORDER BY s.`datum` DESC; +------+------------+-----+ | id | datum | uid | +------+------------+-----+ | 5 | 1315601255 | 3 | | 3 | 1315600978 | 1 | | 4 | 1315600978 | 2 | +------+------------+-----+ 3 rows in set (0.00 sec) + Multi-Zitat Zitieren
#9 9. September 2011 AW: Mysql-Abfrage "GROUP BY x ORDER BY y" genau das ergebnis wollte ich erzielen, danke, wieder was gelernt. kurze frage zu deiner ausgabe. gibt es ein tool oder etwas für phpmyadmin um so ne formatierung zu bekommen? ich mein das Code: mysql> SELECT * FROM tabelle; +----+-----+------------+ | id | uid | datum | +----+-----+------------+ | 1 | 1 | 1315600962 | | 2 | 2 | 1315600962 | | 3 | 1 | 1315600978 | | 4 | 2 | 1315600978 | | 5 | 3 | 1315601255 | +----+-----+------------+ 5 rows in set (0.00 sec) + Multi-Zitat Zitieren
#10 9. September 2011 AW: Mysql-Abfrage "GROUP BY x ORDER BY y" ne, das ist die konsolenanwendung in /usr/bin namens "mysql" bzw. "mysql.exe" unter windows im install-ordner + Multi-Zitat Zitieren
#11 12. September 2011 AW: Mysql-Abfrage "GROUP BY x ORDER BY y" feedback @Blackb!rd? wär nützlich zu wissen ob dein problem gelöst wurde und sich das thema damit erledigt hat. ansonsten steht hier ne offene - aber scheinbar doch gelöste - frage im raum und keiner weiß was er tun soll. danke. + Multi-Zitat Zitieren
#12 12. September 2011 AW: Mysql-Abfrage "GROUP BY x ORDER BY y" Sorry Murdoc, habe dein Feedback schon am Wochenende gelesen, aber bisher keine Zeit gehabt es umzusetzen - Das kann noch etwas dauern. Entweder closen wirs so lange oder wir warten nochetwas Gruß Blackb!rd + Multi-Zitat Zitieren