Вывод данных с MYSQL
178
У меня есть две таблици в базе данных одна с постами другая с комменатми мне нужно достать с одной все посты а со второй подсчитать количество комментов, все это желательно сделать одним запросом. Я пытался доставать все это вот этим запросом
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

но он выдает только те посты в который имеет записи в таблице с коментами какой функцией можно указать что если нет значения в таблице коментариев, этот пост тоже доставать
Ответы (3)
Сортировать по:
  • 1
    Решение
    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
  • Решение
    есть еще такой способ сделать все джоином без подзапроса
    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
    Как-то так:
    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
Написать ответ

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

Войти через TM ID