phpbar.de logo

Mailinglisten-Archive

Zeile einer Gruppierung mit dem Max-Wert einer Spalte

Zeile einer Gruppierung mit dem Max-Wert einer Spalte

Matthias Wegerhoff m.wegerhoff at play-multimedia.de
Die Jul 15 16:50:15 CEST 2003


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