Query sortiert nicht richtig. Join mit 2 Tabellen

Kalma

Erfahrenes Mitglied
Hi,

ich habe folgenden Query:

PHP:
$b_query		=	'SELECT
									*, ceil(`vote_wert`) AS votings, COUNT(`vote_id`) AS `gesamt`
								FROM
									benutzer b
								LEFT JOIN
									benutzer_voting v
								ON
									b.benutzer_id = v.vote_benutzer_id
								WHERE
									`benutzer_id` = "'.$benutzer_id.'"
								GROUP BY
									`votings`
								ORDER BY
									`votings` DESC';


Dieser soll nach dem höchsten Durschnitt der "vote_werte" sortieren.
Macht er aber nicht..

Woran liegt das?



Gruß und Danke
David
 
Ohgott stimmt ja....

PHP:
$b_query        =    'SELECT 
                                    *, ceil(AVG(`vote_wert`)) AS votings, COUNT(`vote_id`) AS `gesamt` 
                                FROM 
                                    benutzer b 
                                LEFT JOIN 
                                    benutzer_voting v 
                                ON 
                                    b.benutzer_id = v.vote_benutzer_id 
                                WHERE 
                                    `benutzer_id` = "'.$benutzer_id.'" 
                                GROUP BY 
                                    `votings` 
                                ORDER BY 
                                    `votings` DESC';

So sollte es gehen denke ich..
Macht er aber trotzdem nicht...
 
Zuletzt bearbeitet:
Oh, irgendwie läuft in letzter Zeit alles schief.

Jetzt sollte mit AVG() Der Durschnitt berechnet werden.

Sorry
 
Hi,

dann beschreibe genau, was bei Deiner Query herauskommt, am besten mit Beispieldaten. Du bist doch lange genug dabei, um zu wissen, dass "funktioniert nicht" einen Informationsgehalt gleich Null hat.
Und was soll das "*" in der Abfrage? Dir ist klar, dass Du in den Feldern, über die weder gruppiert, noch aggregiert wird, irgendwelche Werte bekommst? Jedes andere DBMS würde Dir diese Abfrage um die Ohren hauen. Das ist lediglich ein "Feature" in MySQL, falls man zusätzliche Felder auswählen möchte, die pro Gruppe den gleichen Wert haben...

LG
 
Hi,

jetzt poste doch bitte mal die echte Abfrage. Du willst mir nicht weismachen, dass obiges Dir keine Fehlermeldung wirft? Wie soll bitte MySQL nach einem aggregierten Wert gruppieren, wo doch die Aggregation erst durch Gruppierung über eine Spalte zustande kommen kann?

Und poste die Abfrage, nicht den PHP-Code, der sie generiert, wie dbwizard schon sagt. Außerdem war mit Beispieldaten auch nicht unbedingt eine Liveseite gemeint, bei der man nicht sehen kann, was die Abfrage geliefert hat und wie das Abfrageergebnis denn verarbeitet wurde. So etwas ist bei clientseitigen Problemen sinnvoll...

LG
 
SQL:
SELECT * , AVG(  `vote_wert` ) AS  `votings` , COUNT(  `vote_id` ) AS  `gesamt` 
FROM benutzer b
LEFT JOIN benutzer_voting bv ON b.benutzer_id = bv.vote_benutzer_id
GROUP BY b.benutzer_id
ORDER BY AVG(  `vote_wert` )  DESC 
LIMIT 0 , 30

Das ist mein SQL QUery.
Und die Ausgabe im phpmyadmin ist auch richtig.


Auf der Seite jedoch nicht.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück