ich einen Artikel Tabelle mit einer Beziehung mit 5-Sterne-Rating Bewertungen Tabelle one-to-many in meinem db haben zusammen wie folgt:Wählen Sie Produkte mit Bestnoten in SQL/eloquent ORM
# reviews
- id
- product_id
- body
- rating // possible values are 1 to 5
- created_at
- updated_at
Ich habe ein Abschnitt auf der Homepage der Website für Top-Produkte, die ich hoch bewertete Produkte anzeigen möchte. Also das Problem ist, dass ich eine Abfrage mit Eloquent ORM schreiben muss, um die Top 5 hoch bewerteten Produkte zu holen?
BTW, bitte fühlen Sie sich frei, einfache SQL-Abfragen vorschlagen, und ich sehe, ob ich in der Lage bin, sie zu beredten Methoden zu konvertieren.
Vielen Dank im Voraus.
danke für deine antwort. aber es funktioniert nicht Ich bekam ORDER BY-Klausel ist nicht in der GROUP BY-Klausel und enthält nichtaggregierte Spaltenfehler. – Sina
Ich habe meinen Post bearbeitet, ich habe meinen Code in HeidiSQL ausgeführt und es hat perfekt funktioniert. –
Ich habe eine ", reviews.id" zur Gruppierung nach Klausel hinzugefügt und den Fehler beseitigt, aber die Abfrage ist immer noch falsch, weil sie die Produkte mit der Ziffer 5 in ihren Bewertungen abruft. In der Zwischenzeit, was es tun sollte, ist die Summe aller Bewertungen für jedes Produkt zu berechnen (1 + 5 + 2 + 4 + 3) und dann sehen, welche Summe größer als die anderen ist und die Top 5 in der Reihenfolge zurückgegeben. – Sina