Ошибка в SQL запросе

программирование php MySQL sql

$query = "SELECT s.id,s.name,count(c.id) as count
FROM section_catalog AS s
JOIN
catalog AS c
ON s.id = c.id_cat
GROUP BY c.id_cat
ORDER BY s.name ASC";

те результат должен быть примерно такой:
раздел 1 (10 шт)
раздел 2 (0 шт)
раздел 3 (0 шт)
раздел 4 (5 шт)

А выходит:
раздел 1 (10 шт)
раздел 4 (5 шт)

Вопрос)) Если в таблице catalog ничего не лежит то s.id,s.name не выводится, как это исправить?

Примечание:
Всё равно не работает:
Если делаю так:
$query = "SELECT IFNULL(COUNT(c.id), 0) AS count, s.id, s.name
FROM section_catalog s
JOIN
catalog c
ON (s.id = c.id_cat)
GROUP BY c.id_cat
ORDER BY s.name ASC";
То выводит:
раздел 1 (0 шт)
раздел 2 (10 шт)
раздел 4 (5 шт)
те только первую запись с count =0
С LEFT JOIN результат аналогичный
Ответы:
использовать IFNULL()
SELECT COUNT(c.id) AS count, s.id, s.name
FROM section_catalog s
left JOIN
catalog c
ON (s.id = c.id_cat)
GROUP BY s.id
ORDER BY s.name ASC


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.