У меня проблема с объединением трех таблиц в MySQL.
допустим, у нас есть таблица с именем posts
, в которой я храню свои записи, у меня есть таблица с именем likes
, в которой я храню user_id и post_id, и третья таблица с именем comments
, в которой я храню user_id и post_id и текст комментария в нем.
Мне нужен запрос, который выбирает список моих записей с указанием количества лайков и комментариев для каждой записи.
Я использую этот запрос:
SELECT posts.id, count(comments.id) as total_comments, count(likes.id) as total_likes
FROM `posts`
LEFT OUTER JOIN comments ON comments.post_id = posts.id
LEFT OUTER JOIN likes ON likes.post_id = posts.id
GROUP BY posts.id
но есть проблема с этим запросом, если комментарии для элемента пустые, количество лайков просто в порядке, но, скажем, если в записи есть 2 комментария и 4 лайка, то total_comments и total_likes будут равны "8", что означает что MySQL умножает их.
Я в замешательстве и не знаю, что мне делать.
Спасибо заранее.