簡體   English   中英

如何在MySQL中選擇所有類別並計算每個類別文章的數量

[英]How to select all categories and count number of each category articles in 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查詢,該查詢將選擇所有類別和屬於每個類別的商品總數,並按類別ID進行排序。

預期輸出表:

+-------+-------+    
|  name | count |    
+-------+-------+    
|  cat1 |     2 |    
|  cat2 |     1 |    
|  cat3 |     1 |  
|  cat4 |     0 |  
+-------+-------+
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`

嘗試這個:

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

我希望這會起作用。 請檢查。

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

您也可以使用子查詢,例如

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM