Mailinglisten-Archive |
Hallo Listenbewohner, ist es möglich die Zeile einer Gruppierung auszuwählen, die den höchsten Wert einer bestimmten Spalte hat? Hintergrund ist eine versionierte Tabelle, mit einer Spalte 'id' und eine Spalte 'version'. Wenn ich nun alle aktuellen Datensätze, also die mit der höchsten Version, abfragen will, benutze ich folgende query: SELECT id, version FROM tabelle GROUP BY id HAVING version=max(version) Hierbei 'unterschlägt' die db aber manchmal einige Datensätze, was, glaube ich, daran liegt, das zuerst gruppiert wird, und dann 'version' mit 'max(version)' verglichen wird. Ist beim gruppieren zufällig nicht die Zeile mit dem Maximalwert von 'version' gewählt worden, fällt der Datensatz weg. Was ich also benötige ist ein Weg, beim gruppieren nach 'id' die Zeile mit dem höchsten Wert von 'version' zu wählen. Und zwar die ganze Zeile, ein 'select id, max(version) .... group by id' würde nicht helfen, da dann ja nur die der Maxwert der Spalte gewählt wird, nicht die Zeile mit dem Maxwert! Gibt es einen Weg das in MySql in einem Query zu lösen? Ohne SubSelects? *ratlos* ---- Matthias Wegerhoff play multimedia gmbh Mauritiussteinweg 66 - 68 50676 Köln Tel: 0221 2834872 Fax: 0221 2834831 m.wegerhoff at play-multimedia.de -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive