Seite 1 von 1

[MySQL] Problem mit Query

Verfasst: 20.10.2005 10:34
von chriss713
Hallo!

Ich habe ein Problem mit einer SQL-Abfrage, die genau das machen sollen, was das Beispiel 3.6.4. im MySQL-Manual (http://dev.mysql.com/doc/refman/4.1/en/ ... p-row.html) macht:

Code: Alles auswählen

SELECT article, dealer, price
FROM   shop s1
WHERE  price=(SELECT MAX(s2.price)
              FROM shop s2
              WHERE s1.article = s2.article);
Leider funktioniert das nicht! Wenn ich die Abfrage absetzte, steigt die Prozessorlast auf nahezu 100%, ein Ergebnis bekomme ich jedoch nicht. :(
Wenn ich die WHERE-Klausel im Sub-Select weglasse, kommt immerhin ein Ergebnis zurück.

Ach ja: Verwende MySQL 4.1 auf Windows Server 2003.

Wer weiß Rat?
Schonmal danke im Voraus!

Verfasst: 20.10.2005 10:54
von netzmeister
Hallo,
versuch mal folgendes:

Code: Alles auswählen

SELECT shop.*
FROM shop LEFT JOIN shop AS s2
ON shop.article=s2.article AND shop.price<s2.price
WHERE s2.article IS NULL

Verfasst: 20.10.2005 11:12
von chriss713
Hab ich auch schon, gleiches Resultat.

Verfasst: 20.10.2005 11:22
von netzmeister
chriss713 hat geschrieben:Hab ich auch schon, gleiches Resultat.
Genaue Versionsnummer von deinem MySQL-Server?

Verfasst: 20.10.2005 11:31
von chriss713
netzmeister hat geschrieben:Genaue Versionsnummer von deinem MySQL-Server?
4.1.12


Hab mir jetzt was zurecht gebastelt, das funktioniert:

Code: Alles auswählen

SELECT article, dealer, price
FROM (
      SELECT s2.article, s2.dealer, s2.price
      FROM shop s2
      ORDER BY s2.price DESC
     )
GROUP BY article