Таблица категорий:
id, name
---------
1 cat1
2 cat2
3 cat3
4 cat4
Таблица артикулов:
id, cid, title
--------------
1 1 title1
2 3 title2
3 1 title3
4 2 title4
Как выбрать все категории и подсчитать количество статей каждой категории в MySQL? Мне нужен запрос mysql, который выберет всю категорию и общее количество статей, принадлежащих каждой категории, и упорядочит их по идентификатору категории.
Ожидаемая выходная таблица:
+-------+-------+
| name | count |
+-------+-------+
| cat1 | 2 |
| cat2 | 1 |
| cat3 | 1 |
| cat4 | 0 |
+-------+-------+
3
Clinton
27 Апр 2016 в 14:47
5 ответов
Лучший ответ
Вы также можете использовать подзапрос, например
SELECT c.name,(select count(*) from article where cid = c.id) as count FROM cat c WHERE 1 GROUP BY c.id
0
Brijal Savaliya
27 Апр 2016 в 12:00
Я надеюсь, что это сработает. Пожалуйста, проверьте.
select
Category.name.
ifnull(count(Article.cid),0) as count
FROM
Category
LEFT JOIN
Article
on
Article.cid=Category.id
group by
Category.Id
0
Community
22 Авг 2019 в 11:36
select c.name,count(b.title)count from category a, article b where c.id = a.cid group by c.name order by a.cid;
1
Priyanshu
27 Апр 2016 в 11:52
Попробуйте это:
SELECT c.`name`, count(a.cid) as count FROM category
LEFT JOIN article
ON c.id = a.cid
GROUP BY a.cid
1
Murad Hasan
27 Апр 2016 в 11:51
SELECT
c.`name`,
COUNT(a.cid) AS `count`
FROM
categories c
LEFT JOIN article a ON c.id = a.cid
GROUP BY
c.`name`
ORDER BY
c.`name`
3
mitkosoft
27 Апр 2016 в 11:53
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.