Мне нужно подсчитать голоса за каждый комментарий, и возникла проблема с этим запросом.Запрос занимает около 3 секунд для комментариев 1 M и комментариев 3 M
Как я понимаю, проблема в том, что mysql подсчитывает все голоса за все комментарии
SELECT com.*, cv.UC_Vote, cv.UC_Vote_Neg, cv.UC_Vote_Pos
FROM Comments AS com
LEFT JOIN (
SELECT SUM(Vote) AS UC_Vote, SUM(IF(Vote < 0, Vote, 0)) AS UC_Vote_Neg, SUM(IF(Vote > 0, Vote, 0)) AS UC_Vote_Pos, UC_Code FROM CommentsVote
GROUP BY UC_Code
) AS cv ON cv.UC_Code = com.UC_Code
WHERE
com.Blo_Code = $blocode AND com.UC_Status = 1
Так как передать UC_Code в подзапрос, какэто?
LEFT JOIN (
SELECT SUM(Vote) AS UC_Vote, SUM(IF(Vote < 0, Vote, 0)) AS UC_Vote_Neg, SUM(IF(Vote > 0, Vote, 0)) AS UC_Vote_Pos, UC_Code FROM CommentsVote
**WHERE cv.UC_Code = com.UC_Code**
GROUP BY UC_Code
) AS cv ON cv.UC_Code = com.UC_Code