1
을 보여주는 카운트 나는, 카탈로그에서 모든 정보를 얻을 등급 테이블에 가입 코멘트를 테이블에 가입 한 후, 내 SQL 쿼리 카탈로그 게시물로 의견을 계산해야합니다세 개의 테이블 조인 내가 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
을
모든 것이 6 번만 total_comments의 잘못된 번호를 보여 주지만, 2 번 행의 주석 표에는 나쁜 결과가 표시됩니다. 그룹화에 문제가 있다고 생각합니다. GROUP BY catalog.catalog_id, comments.catalog_id
을 추가하려했지만 도움이되지 않았습니다. 내 테이블 :
예! 작동합니다. 결과는 거의 좋았지 만, 지금은 내가 왜 평균은 ORDER BY, ORDER BY DESC로 제대로 작동하지 않았는지 이해하지 못합니다. 평균이 가장 높고 득표가 상위에서 봇으로 바뀌기 때문에 DESC가 해결하지 못했습니다. 무슨 일이. 봇의 마지막 var_dump http://pastie.org/private/exg0mzscvgv4faiuhrobuq의 내 결과가 맨 위에 표시되지 않습니다. – SkySonny
@SkySonny. . . 올바른 숫자가 나오면 분류에 대한 다른 질문을하는 것이 좋습니다. –