Da der Fehler for SELECT DISTINCT, ORDER BY expressions must appear in select list
erscheinen .Daher müssen Sie explizit die Klausel auswählen, nach der Sie bestellen.
Hier ist ein Beispiel, es ähnelt Ihrem Fall, aber etwas verallgemeinern.
Article.select('articles.*, RANDOM()')
.joins(:users)
.where(:column => 'whatever')
.order('Random()')
.uniq
.limit(15)
Fügen Sie also explizit Ihren ORDER BY
hinzu -Klausel (in diesem Fall RANDOM()
). ) mit .select()
. Wie oben gezeigt, müssen Sie diese ebenfalls explizit auswählen, damit Ihre Abfrage die Artikelattribute zurückgibt.
Ich hoffe das hilft; Viel Glück