У меня есть этот рабочий запрос, который работает правильно:
select problems.problem_id , problem_title , sum( vote ) as totalVotes
from problems
left join problem_votes on
problems.problem_id = problem_votes.problem_id
left join problem_categories on
problems.problem_id = problem_categories.problem_id
where problem_categories.category_id = 1 GROUP BY problem_title;
когда я добавляю еще одно объединение в таблицу suggested_solutions
и сумму (column_in_suggested_solutions_table), чтобы увидеть, сколько предложенных решений существует для проблемы, запрос выглядит так:
select problems.problem_id , problem_title , sum( vote ) as totalVotes , count(solution_name) from problems
left join problem_votes on
problems.problem_id = problem_votes.problem_id
left join problem_categories on
problems.problem_id = problem_categories.problem_id
left join suggested_solutions on
problems.problem_id = suggested_solutions.problem_id
where problem_categories.category_id = 1 GROUP BY problem_title;
Проблема со вторым запросом состоит в том, что, хотя он по-прежнему возвращает то же количество строк, оригинальная функция sum () возвращает завышенное число подсчетов, а функция подсчета для предлагаемых_полюсов также возвращает завышенное число.
Есть идеи, что я здесь не так делаю?
Спасибо!