Mailinglisten-Archive |
Hallo Christian, hallo Liste, also, mich würde mal noch die Performanz interressieren. Du (Christian) hast zwar geschrieben, daß Du nicht so viele Werte in der Tabelle hast, aber vielleicht läßt sich aus den kurzen Zeiten doch was ablesen... Zitiere Christian Victor <christian at victormedia.de>: > Korrekt lautet es: [etwas umgeformt] SELECT `name`, MAX( `datum`) AS `datum`, SUBSTRING( MAX( CONCAT( `datum`, `raum`)), 11) AS `raum` FROM `raumnutzung` GROUP BY `name` ORDER BY `name` obiges ist das mit dem etwas unschönen Trick. Die andere (SQL-genehmere) Variante war: SELECT `name`, MAX( `datum`) AS `datum`, `raum` FROM `raumnutzung` AS `orig` LEFT JOIN `raumnutzung` AS `kopie` ON `orig`.`id` = `kopie`.`id` GROUP BY `name` HAVING `orig`.`datum` = MAX( `kopie`.`datum`) ORDER BY `name` Zu beachten wäre, daß auf datum ein Index gelegt werden könnte/sein sollte. Eine Frage ist, ob mysql den auch bei dem MAX-CONCAT Trick benutzen kann. Probierst Du das bitte mal aus Christian? Vielen Dank! ps: Ich habe eine ganze Weile gebraucht, bis ich den Trick verstanden hatte. Daher geb ich mal einen Hinweis: CONCAT( MAX( `datum`), `irgendeine_information`)) liefert sowas wie 2004-06-01kindertag 2004-07-29heute 2003-11-11fasching Also wenn man da das Maximum sucht, ist ja der Text hinten dran egal. Aber wenn man das Maximum hat, kann man hinten die gesuchte Information "herausschneiden". Beste Grüße, Christoph -- Fingerprint=65B7 73B6 5969 AC2B 4572 39A2 0DBC DAC1 3D6A 45B7 email auch: chw- at gmx.de / mai01dzr at ... -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive