これは私の取引を取得するための私の現在のクエリです:
SELECT deals.*, SUM(orders.cost) AS 'revenue' FROM deals
LEFT JOIN orders ON (orders.deal_id = deals.id)
WHERE 1
AND (orders.status = 'new' OR orders.status = 'delivered')
GROUP BY deals.ID
ORDER BY revenue ASC
これでうまく機能し、注文または取引テーブルで希望するフィールドでこのクエリを(並べ替えて)並べ替えることができます。
次に、取引をループしてforeach()で表示すると、このクエリを使用して、取引の顧客から平均的なレビュースターを取得できます。
SELECT ROUND(AVG(stars)) as 'avg_stars' FROM deals_reviews WHERE deal_id = *THE DEAL_ID* AND active = '1'
ここで、ASC/DESCのすべての取引を平均的なスターから分類したいと思います。
これを行うには、そのクエリを上記のクエリとマージする必要があります。avg_starsを表示する必要がある場合は、2番目のクエリではなく、最初の唯一のクエリからこの値を取得します。
そのクエリを最初のクエリに「マージ」するにはどうすればよいですか?それが終わったら、ORDER BY avg_stars DESCを実行するだけで、これで並べ替えられますか?