Ich habe 4 Tabellen namens Shops, Benutzer, Bewertung und Bewertung.SUM() funktioniert nicht in MySQL: SUM() mit DISTINCT
Ich möchte alle Bewertungen für den entsprechenden Shop mit überprüften Benutzerdetails und auch Gesamtbewertung für diesen Shop erhalten.
Ich habe fast mit der einzigen Abfrage getan. Aber das Problem ist, wenn der Shop die gleiche Bewertung für mehrere Male vom selben Nutzer hat, wird er als Einzelbewertung betrachtet. Aber diese Bewertung war korrekt.
d.h
aus dieser Tabelle user_id 3 Arbeitsplatz_id 1 als 4 Mal bewertet wurde. So ist die Zahl 4 und total_rating ist 17.
Meine Frage ist
select review.comments, users.username, count(distinct rating.id) as rating_count,
sum(distinct rating.rating) as total_rating from users
left join review on users.id = review.user_id and review.shop_id='1'
left join rating on users.id = rating.user_id and rating.shop_id='1'
where review.shop_id='1' or rating.shop_id='1'
group by users.id, review.user_id, rating.user_id, review.id
Wenn ich diese Abfrage ausführen ich
bekamaber ich brauche total_rating 17 für user_id 3 ..
prüfen diese fiddle
Was passiert, wenn Benutzer haben gleiches Geschäft mehr Bewertung als ein? –
@ Code-Mönch Wir können es mehr als einer zeigen. Wie in meinem Beispiel Good, Test Review wurde von demselben Benutzer für den gleichen Shop – RaGu