MYSQL: nach Summe Sortieren

xtramen01

Erfahrenes Mitglied
Hallo Leute,

ich habe ein Problem bei dem ich leider nicht mehr weiter weis.

Folgendes Beispiel für ein Query:

Code:
select p.products_id, p.products_price, pd.products_name from products p left join products_description pd on p.products_id = pd.products_id order by p.products_id desc

Hier wird nach products_id sortiert.
Nun habe ich aber noch eine Tabelle reviews welche die Bewertungen enthält und nach eben dieser Bewertungen will ich das Query sortieren.
Würde ich das mit dieser einzelnen Tabelle machen, dann so:

Code:
select SUM(reviews_rating) FROM reviews GROUP BY products_id"

Wie aber kann ich die beiden Queries kombinieren, sodaß ich quasi alle Ergebnisse der ersten Abfrage habe, nur eben so sortiert wie im zweiten Beispiel.

Ich hoffe ihr versteht was ich meine.

Gruß und Danke schonmal!
 
Wozu der group by beim zweiten Query? So wie die Query geschreben ist, brauchts in diesem Fall gar kein group by weil du im select Teil ja nur aggregatsfunktionen hast. Zudem sortierst du da gar nicht so wie du geschreiben hast.

Ungetestet:
SQL:
SELECT  
p.products_id, 
p.products_price, 
pd.products_name,
r.total_reviews_rating
FROM 
products p 
LEFT JOIN -- wirklich ein left join? hast du produkte ohne desc oder solche mit mehreren? falls nein -> inner join
products_description pd 
ON
p.products_id = pd.products_id
LEFT JOIN -- hier left join weil ich mal davon ausgehe, dass es auch produkte gibt welche kein review haben können, z.b. weil sie eben gerade neu erstellt wurden
(
SELECT 
products_id, 
SUM(reviews_rating) AS total_reviews_rating 
FROM 
reviews 
GROUP BY 
products_id
) r
ON
p.products_id = r.products_id
ORDER BY
r.total_reviews_rating DESC



Und, hats funktioniert?
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück