globe: Umschreiben eines Subquerys?

Beitrag lesen

n'abend,

leider verwendet mein Provider MySQL 4.0.27, damit ist es anscheinend nicht möglich, Subquerys auszuführen.

der Umstieg von 4.0 auf 4.1 bedeutet Aufwand. Nicht nur für den Provider, sondern vor allem auch für die Kunden, mit ihren Systemen. MySQL 4.1 kann zwar mehr, macht aber auch einige Sachen etwas anders. Das bedeutet es ist nicht 100% abwärtskompatibel. Ähnlich verhält es sich auch mit der PHP4 / PHP5 Umstellung, die noch immer nicht flächendeckend vollzogen wurde.

Ich habe in Bezug auf eine früher von mir gestellte Frage (https://forum.selfhtml.org/?t=163062&m=1061763) eine Abfrage "gestrickt" (von der ich nichtmal weiß, ob sie funktionieren würde), die auf meine mysql-Version umgeschrieben werden müsste.

Da musst du selbst Hand anlegen, und 2 Queries draus machen. In der ersten ermittelst du den gewünschten Spieler (die SpielerID reicht ja zur Identifizierung aus), in der zweiten Query holst du dann die benötigten Daten. Beispielsweise so:

$res = mysql_query( 'SELECT SpielerID FROM table WHERE bedingung = true' );  
$SpielerID = mysql_fetch_row($res);  
$SpielerID = $SpielerID[0];  
  
$res = mysql_query( 'SELECT daten FROM table WHERE SpielerID = '. $SpielerID );  
while( $row = mysql_fetch_assoc( $res ) )  
  print_r( $row );  

SELECT Ampelfarbe, COUNT(*) FROM tabelle_Bewertungen where SpielerID IN

(SELECT SpielerID, COUNT(*) AS n FROM tabelle_Bewertungen GROUP BY SpielerID order by n desc LIMIT 0, 1)
GROUP BY Ampelfarbe

  

> Frage 1: Ist die Anweisung überhaupt korrekt?  
  
Vermutlich wird das nicht funktionieren, weil du in der SubQuery zwei(!) Datenfelder Selektierst (also ein Tupel zurückgibst), in der äußeren Query aber nur ein einzelnes Datenfeld erwartest / prüfst.  
  
»LIMIT 0, 1« kannst du auch durch »LIMIT 1« ersetzen.  
  

> Frage 2: Gibts ne Möglichkeit, sie so umzuformulieren, dass sie auf MySQL 4.0.27 läuft?  
  
siehe obiges Beispiel.  
  
weiterhin schönen abend...

-- 
#selfhtml hat ein Forum?  
  
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|