1
を示すカウントし、私は、カタログからすべての情報を取得する評価テーブルを結合するとコメントテーブルに参加し、その後、私のSQLクエリーカタログ投稿のコメントをカウントする必要があります。3つのテーブルが参加して、私は3つのテーブルを持っている間違った結果
SELECT
catalog.catalog_id,
catalog.slug,
catalog.title,
catalog.city,
catalog.street,
catalog.image COUNT(ratings.rate) AS votes,
COUNT(comments.catalog_id) AS total_comments,
ROUND(SUM(ratings.rate)/COUNT(ratings.rate)) AS average
FROM
catalog
LEFT JOIN ratings ON ratings.object_id = catalog.catalog_id
LEFT JOIN comments ON comments.catalog_id = catalog.catalog_id
GROUP BY
catalog.catalog_id
ORDER BY
average,
votes DESC
を
すべてが正常に表示されるのはtotal_commentsの不良番号6のみですが、コメントテーブルでは2行しかないので、その悪い結果になります。私はそれがグループ化の問題だと思っています。私はGROUP BY catalog.catalog_id, comments.catalog_id
を追加しようとしましたが、それは役に立たなかった。 私のテーブル:
はい、動作します。結果はほぼ良好ですが、今では私が平均して平均を必要とし、投票がトップからボットに向かうため、「ORDER BY average、votes DESC」で正しくソートしなかったのはなぜですか?しかしDESCは解決しませんでしたどのようなもの。ボットの最後のvar_dump http://pastie.org/private/exg0mzscvgv4faiuhrobuqの結果は一番上ではありません。 – SkySonny
@SkySonny。 。 。これが正しい数字を生成する場合は、ソートに関する別の質問をすることをお勧めします。 –