2016-03-22 251 views
0

我需要用另一個表中的count來創建一個select查詢。Mysql select count with count

我有兩個表,如categorycandidates。每個候選人都屬於一個類別。

在這裏,我想選擇類別表中的所有類別以及每個類別可用的候選人數。

這樣的:category_name(23)

這是我嘗試過。但它對我不起作用。

SELECT c.category_id 
     , c.name 
     , COUNT(cn.job_category) AS cvs 
FROM job_category c 
LEFT JOIN candidates cn ON cn.job_category = c.category_id 
ORDER BY c.name ASC 

回答

2

您缺少group by子句。

SELECT c.category_id 
     , c.name 
     , COUNT(cn.job_category) AS cvs 
FROM job_category c 
    LEFT JOIN candidates cn ON cn.job_category = c.category_id 
GROUP BY c.category_id 
     , c.name 
ORDER BY c.name ASC 

注:如果沒有group bymysql只會返回一個任意類別。如果在group by子句中未包含非聚合列,則它會允許此行爲,而大多數其他數據庫系統會導致錯誤。