Подсчет с условием if в запросе mysql

У меня есть две таблицы, одна для новостей, а другая для комментариев, и я хочу получить количество комментариев, статус которых был установлен как утвержденный.

SELECT
    ccc_news . *, 
    count(if(ccc_news_comments.id = 'approved', ccc_news_comments.id, 0)) AS comments
FROM
    ccc_news
    LEFT JOIN
        ccc_news_comments
    ON ccc_news_comments.news_id = ccc_news.news_id
WHERE
    `ccc_news`.`category` = 'news_layer2'
    AND `ccc_news`.`status` = 'Active'
GROUP BY
    ccc_news.news_id
ORDER BY
    ccc_news.set_order ASC
LIMIT 20 

Но проблема с этим запросом заключается в том, что минимальное значение, которое извлекается для столбца комментариев, равно 1, независимо от того, существует ли какой-либо комментарий, соответствующий этой новости или нет.

Любая помощь будет весьма ценной.

97
задан ElChiniNet 7 August 2019 в 14:24
поделиться