У меня есть следующие таблицы:
posts (post_id, content, etc)
comments (comment_id, post_id, content, etc)
posts_categories (post_category_id, post_id, category_id)
и этот запрос:
SELECT `p`.*
, COUNT(comments.comment_id) AS cmts
, posts_categories.*
, comments.*
FROM `posts` AS `p`
LEFT JOIN `posts_categories`
ON `p`.post_id = `posts_categories`.post_id
LEFT JOIN `comments`
ON `p`.post_id = `comments`.post_id
GROUP BY `p`.`post_id`
Есть три комментария к post_id = 1 и четыре всего. В posts_categories есть две строки, обе назначены post_id = 1. У меня есть четыре строки в сообщениях.
Но если я сделаю запрос выше, я получу результат 6 для COUNT(comments.comment_id)
при post_id = 1 Как это возможно? Я предполагаю, что ошибка где-то в предложении GROUP BY, но я не могу понять, где.
Есть предложения?