PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nach group by zugehörigkeit behalten??


faruk
25.04.2008, 17:05:56
Hallo,

ich habe eine Tabelle die als Beispiel so ähnlich gefüllt ist


katid__bildid___bewges
13____252____130
13____244____152
13____238____142
13____236____158
12____223_____51
12____224_____53
12____227_____51


ich möchte gerne pro katid ein Datensatz, und das o das die jeweils zugehörigen Bewertungen und bild_id mit richtiger Zugehörigkeit ausgegeben wird.

Ich habe einiges rumprobiert, und bin bis zur folgenden SQL abfrage gekommen:

SELECT katid,bild_id, MAX(bewges) FROM fototabelle GROUP BYkatid DESC ORDER By katid DESC

diese SQL-abfrage gibt mir so etwas wie dies hier als Ausgabe bzw Sortierung und Gupierung raus.

katid__bildid___bewges
13____238____158
12____227____53

Also die spalte bewges und bild_id haben nicht mehr die richtige Zugehörigkeit, ich habe auch mit „DISTINCT“ versucht, aber egal was ich mache die bild_id kriege ich nicht richtig zugeordnet.
Was ich vorhabe ist das ich den maximalen Punktzahl eines Bildes herausbekommen möchte und anhand de Bild_id möchte ich dann im folgenden schritt den User herausbekommen, das geht natürlich nicht wenn ich nicht den richtigen bild_id zum bweges bekomme.

Eigentlich sollte eher folgendes raus kommen

katid__bild_id__bewges
13___236____158
12___224_____53

Was ich weiß ist das sowas schon mit „CONCAT“ geht. Vor der Sortierung werden nach dem verfahren nur 2 spalten gebraucht und alle spalten außer dem der den „key“ bildet werden in eine spalte zusammen gefasst, sortiert und dann gruppiert und so die doppelten Einträge heraus gefiltert, ohne das die Zugehörigkeiten zueinander verloren gehen. Allerdings ist dieses verfahren sehr langsam, ich habe den schon mal irgendwo verwendet, und braucht bei einem Datensatz von etwa 20.000 manchmal bis zur 2sek.

Nun bei diesem neuen Fall würde ich gerne ein besseren SQL Code verwenden, vor allen dingen ist vielleicht mit MySQL 5 mehr möglich wie mir gerade noch bekannt sein könnte.

Hoffentlich kann einer von euch mir helfen.

Viele grüße
faruk