mySQL Abfrage Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mySQL Abfrage Problem

    Hallo,

    Ich hoffe hier jemanden zu finden der mir bei folgender mySQL
    Abfrage auf die Sprünge helfen kann.

    Hintergrundinfo zur Abfrage:
    Es handelt sich hierbei um Foto Feedbacks.
    Ich möchte eine TOP 10 Liste generieren, die sich aus dem Punktedurchschnitt
    der Votings sortieren soll.

    Weiters sollen nur jene Datensätze berücksichtigt werden wo:
    > Kategorie = FOTOS
    > abgegebenes Voting > 0 (Punkte)
    > und mindestens 1 Bewertung vorhanden sind.

    PHP-Code:
    SELECT Kategorie,Produkt_ID,Object_Member,SUM(Voting) as Summe,Voting,COUNT(ID) as Anzahl,(SUM(Voting)/COUNT(ID)) as OrderVal
    FROM feedbacks
    GROUP BY Kategorie
    ,Produkt_ID,Object_Member,Voting
    HAVING Voting 
    AND COUNT(ID) >= AND Kategorie 'FOTOS'
    ORDER BY OrderVal DESC,Summe DESC LIMIT 0,10 
    Aktuelles Problem:
    Wenn es zum Beispiel bei einem Foto 2 Feedbacks gibt, sollen diese
    sinngemäss in den Charts als ein Eintrag zusammengefasst werden.
    Zur Zeit wird mir pro Feedback ein eigener Eintrag in den Charts angezeigt.

    Beispiel aktuell:

    Platz 1:
    Fototitel: ROTER MILAN
    Bewertung: Anzahl: 1 / Punkte: 8 / Durchschnitt: 8,00
    --------------------------------------------------------------------------------
    Platz 2:
    Fototitel: ROTER MILAN
    Bewertung: Anzahl: 1 / Punkte: 7 / Durchschnitt: 7,00
    --------------------------------------------------------------------------------
    Platz 3:
    Fototitel: Unter den Lebenden
    Bewertung: Anzahl: 1 / Punkte: 6 / Durchschnitt: 6,00

    Richtig wäre:
    Wenn Platz 1 und 2 zusammengefasst wäre.

    Also:
    Fototitel: ROTER MILAN
    Bewertung: Anzahl: 2 / Punkte: 15 / Durchschnitt: 7,50

    Wär spitze wenn mir jemand helfen kann.

    Vielen Dank und lg,
    Max

  • #2
    Ist Produkt_ID ein eindeutiger Schlüssel (der zB eindeutig für ROTER MILAN steht) in der Tabelle?
    Dann gruppiere mal nur nach diesem.
    Und ersetze mal HAVING durch WHERE und schieb die
    Klausel vor GROUP BY rein

    Kommentar


    • #3
      'Produkt_ID' ist kein Schlüssel.
      Der Schlüssel wäre in dieser 'feedbacks' Tabelle, 'ID' (auto increment).

      Bei "ROTER MILAN" steht in 'Produkt_ID' bei jedem vorhandenem
      Feedback Eintrag '1427'.
      '1427' ist die eindeutige ID des Fotos aus der Tabelle 'shop_produkte',
      von wo ich mir dann beispielsweise den Titel, die Anzahl der Views, etc. hole.

      Ich hab das ganze ja auch schon mittels JOIN Verknüpfung versucht,
      aber bin auch dort gescheitert.

      Bin schon seit Samstag am grübbeln.

      Kommentar

      Lädt...
      X