Mailinglisten-Archive |
> Hallo, > > ich habe eine Tabelle (t) mit folgenden Werten: > |---|---|---|---| > | a | b | c | d | > |---|---|---|---| > | 1 | 1 | 2 | 3 | > | 1 | 3 | 2 | 2 | > | 1 | 4 | 1 | 1 |* > | 1 | 2 | 0 | 0 | > | 2 | 2 | 1 | 1 | > | 2 | 3 | 2 | 2 | > | 2 | 5 | 6 | 3 |* > |---|---|---|---| > SELECT *, MAX(b) FROM t GROUP BY a > > Damit bekomme ich zwar zu jedem Wert den Max-Wert von b, > was soweit gewollt ist, aber die falschen Daten von c und d. > Wie bekomme ich die passenden Daten für c und d dazu? > > Danke, Rico tja, bei group by a holt sich select die werte von c u d (da keine bedingugen an diesen felder gestellt wie etwa max(b) für b) aus irgendeiner reihe, ich meine aus der jeweils letzten reihe für jedes a ... eine zwischenlösung erstmal (möglicherweise gibt es was eleganteres / einfacheres) wäre: $myquery1="SELECT a,max(b) as bmax FROM t GROUP BY a"; $result1 = mysql_query($myquery1,$db); while ($row1 = mysql_fetch_row($result1)) { $myquery2="SELECT * FROM t WHERE a=$row1[0] AND b=$row1[1]" $result2 = mysql_query($myquery2,$db); $row2 = mysql_fetch_row($result2) ... a -> row2[0], b -> row2[1], c -> row2[2], d -> row2[3] } ätzend, ich weiß... aber mir fällt momentan nix besseres ein. saluts julián daniel --- *** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive