2016-04-27 4 views
1

Категория таблицы:Как выбрать все категории и рассчитывать количество каждой категории статей в MySQL

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 | 
+-------+-------+ 
+2

Подсказка: 'ЛЕВЫЙ JOIN'. 'GROUP BY'. –

+1

Уже что-то пробовал? Искали ответы? Эй, это за 2 минуты googling .... – areim

ответ

0

Вы также можете использовать подзапрос как

SELECT c.name,(select count(*) from article where cid = c.id) as count FROM cat c WHERE 1 GROUP BY c.id 
+0

почему DV для этого ответа? –

1

Попробуйте это:

SELECT c.`name`, count(a.cid) as count FROM category 
LEFT JOIN article 
ON c.id = a.cid 
GROUP BY a.cid 
1
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
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` 
0

Я надеюсь, что это будет работать. Пожалуйста, проверьте.

select Category.name. ifnull(count(Article.cid),0) as count FROM Category LEFT JOIN Article on Article.cid=Category.id group by Category.Id

Смежные вопросы