Это не абсолютно правильно или неправильно, join
вернет больший набор данных, но может получить все в одном запросе
Зависит от вашего требования, если вам просто нужно количество комментариев + идентификатор списка комментариев (для последующего использования), рассмотрите возможность использования group_concat
select
article.*,
group_concat(comment.id) as comments,
count(comment.id) as comments_count
from
article
left join comment
on comment.article_id=article_id
group by article.id;
столбцы комментариев будут содержать все идентификаторы комментариев, а comments_count возвращает количество комментариев для каждой статьи
PS : я думаю, что более подходящим является левое соединение