大丈夫ですので、2つのテーブルがあります。 1つはレシピを保持し、2つ目はすべてのレーティングを保持します。PHPとMySQLで最も評価の高いものを表示
recipes_ratings:
id, rating, user_id, recipe_id
recipes:
id, name
各レシピのすべての行を数えたいと思います。次に、最も評価が高く降順のレシピをソートして表示します。
最も簡単な方法は何ですか?私はクエリを行うと思っている
SELECT * FROM recipes_ratings
そして、評価でループを数え、配列に格納してからそれを並べ替えます。
しかし、それは簡単にできますか? 1つのクエリだけそれをすべて行う..または?
おそらく、「平均レーティング」を使用する代わりに、「AVG」にしたいと思うかもしれません。「レシピID:レシピID:レシピID:レシピID:レシピID:ORDER BY SUM(レーティング)DESC; –
おそらく、レーティングが1回または2回しか除外されていないレシピを除外することも検討したいと思うでしょう。 –