Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
[MYSQL4.0] Gruppierung nach Spalte mit mehr als einem Element pro Gruppe [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-consult PHP Entwicklung
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
[MYSQL4.0] Gruppierung nach Spalte mit mehr als einem Element pro Gruppe


 
mnhg
25-03-2007, 11:04 
 
Nach so einem tollen Titel mach ich es mal lieber gleich konkret. Ich habe derzeit folgende Queries:

SELECT *, COUNT(ID) AS Count FROM games WHERE Cat<>'Premium' GROUP BY Cat ORDER BY Cat

und dann je Ergebniszeile

SELECT * FROM games WHERE Cat=$row['Cat'] AND Votes>10 ORDER BY Average DESC LIMIT 0,7

D.h. ich möchte pro Kategorie (ungleich Premium) die 7 Spiele mit der höchsten Durchschnittsbewertung die mehr als 10 Stimmen bekommen, sortiert nach der Kategorie haben. (Das Zählen der Gesamtanzahl der Spiel pro Kategorie wäre dann noch der Luxus ;))

Kleine Einschränkung dabei ist MYSQL 4.0, d.h. keine Subqueries.


Hat jemand noch ne Idee, bevor ich mich mit der Lösung zufrieden gebe. (Ist zeitlich nicht so schlimm, aber eben 8 Queries pro Seitenaufruf.)

 
mnhg
25-03-2007, 16:49 
 
Will keiner oder kann keiner? ;)

 
ghostgambler
25-03-2007, 17:58 
 
Ich würds ja mal mit einem JOIN probieren, aber ob das klappt bin ich mir nicht sicher

 
mnhg
25-03-2007, 18:23 
 
Ein wahnsinnig lustiger Mensch bist du. Das ich sehr wahrscheinlich 'nen Selfjoin brauche weiß ich selber. ;) Aber wie kann ich pro Kategorie immer die 7 beliebtesten Spiel rausbekommen. Ich möchte jetzt aber auch nicht unbedingt ein Join über 8 Tabellen dabei basteln.

Vielleicht fehlt mir ja mittlerweile bloß die nötige Distanz, ich würde daher ein konkrete Lösungidee begrüßen.

 
ghostgambler
25-03-2007, 18:37 
 
Na dann probier doch einfach mal was rum ... viel mehr würde ich auch nicht machen~
Join rein, gucken was als Ergebnis kommt, mit ein paar WHERE oder HAVING-Clauseln bestäuben und gucken was passiert... man sind hier alle unselbstständig -.-

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:16 Uhr.