Вывод данных с MYSQL

У меня есть две таблици в базе данных одна с постами другая с комменатми мне нужно достать с одной все посты а со второй подсчитать количество комментов, все это желательно сделать одним запросом. Я пытался доставать все это вот этим запросом
SELECT posts.post_id, posts.name, posts.ctime, posts.author, posts.post, COUNT(comment.comment_id)  
FROM posts, comment 
WHERE comment.post_id=posts.post_id 
GROUP BY comment.post_id

но он выдает только те посты в который имеет записи в таблице с коментами какой функцией можно указать что если нет значения в таблице коментариев, этот пост тоже доставать
  • Вопрос задан
  • 2531 просмотр
Решения вопроса 2
svd71
@svd71
SELECT posts.post_id, posts.name, posts.ctime, posts.author, posts.post
, (select COUNT(*) from comment   WHERE comment.post_id=posts.post_id ) as COUNT
FROM posts
Ответ написан
Romastr
@Romastr Автор вопроса
есть еще такой способ сделать все джоином без подзапроса
SELECT posts.post_id, posts.name, posts.ctime, posts.author, posts.post, count(comment.comment_id)
FROM posts
LEFT JOIN comment ON posts.post_id = comment.post_id
GROUP BY posts.post_id
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Satanpit
@Satanpit
Front-end developer
Как-то так:
SELECT posts.post_id, posts.name, posts.ctime, posts.author, posts.post, COUNT(comment.comment_id)  
FROM posts
LEFT JOIN comment USING(post_id)
GROUP BY posts.post_id
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы