Следующий запрос использовался для получения всех комментариев к определенной статье блога и работал хорошо. Теперь я добавил в свой блог систему очков репутации участников, аналогичную системе репутации Stack Overflow, и попытался изменить этот запрос, чтобы получать очки репутации из таблицы members_reputation, чтобы рядом с именем пользователя отображался каждый комментарий.
Я подумал, что добавление SUM (rep.points) AS member_rep и добавление LEFT JOIN в таблицу репутации поможет, но я получаю странные результаты, слишком странные для описания. На самом деле, одно забавное поведение заключается в том, что не все комментарии возвращаются. Где, если я удалил свою попытку решения, все комментарии возвращаются, но мне нужно посчитать / показать их репутацию
Каждый комментарий имеет члена, и каждый участник имеет репутацию.
SELECT comment.comment_id, comment.member_id, comment.comment,
comment.posted, member.screen_name, member.country_code, SUM(rep.points) AS member_rep
FROM blog_comments AS comment
LEFT JOIN members AS member ON comment.member_id = member.member_id
// my attempt start //
LEFT JOIN members_reputation AS rep ON comment.member_id = rep.member_id
// my attempt end //
WHERE comment.article_id = "&article_id&"
ORDER BY comment.comment_id DESC
Структура БД
comments : comment_id, member_id, comment, posted
members : member_id, screen_name, country_code
members_reputation : member_id, activity_type, points
Что я хочу увидеть
This is a posted comment on my blog. Cool huh?
25/02/2012 By Martin G **850** (GBR)
Если кто-нибудь может помочь мне вернуться на правильный путь, я был бы очень признателен ...