![](/img/trans.png)
[英]MySQL SELECT, LEFT JOIN and COUNT() in one query returns error
[英]mysql left join count always returns 1
這是我的數據結構:
categories
id name
-------------------
1 category1
2 category2
3 category3
items
id name cat
-------------------
1 item1 1
2 item2 1
3 item3 1
4 item4 2
所需的輸出:
cat category total_items
-----------------------------------
1 category1 3
2 category2 1
3 category3 0
我嘗試了以下查詢:
select categories.id as cat,
categories.name as category,
count(*) AS total_items from categories
left join items on categories.id = items.cat
並且它將始終返回類別3的1 ..有什么想法嗎?
嘗試這個:
select categories.id as cat, categories.name as category,
count(items.cat) AS total_items
from categories
left join items on categories.id = items.cat
您的查詢的問題是COUNT(*)
是基於行進行計數的,包括items
表中具有NULL
值字段的行。
改用count(items.cat)
,將NULL
值的字段留在外面。
試試吧...
select categories.id as cat,
categories.name as category,
count(*) AS total_items from items
left join categories on items.cat=categories.id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.