0
我有具有以下結構的表。獲得由另一個表字段過濾的每個類別的計數
AD_TABLE
-
ID|NAME|CAT_ID|TYPE
1| car | C0101|Sale
2|bike | C0201|Want
CAT_TABLE
-
ID |NAME |PARENT|LEVEL
C0100|Vehicle |C0100 | 0
C0101|Car |C0100 | 1
C0200|Bike/Scooters |C0100 | 1
C0201|Bike |C0200 | 2
C0202|Scooter |C0200 | 2
我需要從每個類別的廣告的數量,我寫了下面的查詢。
SELECT `CAT_TABLE`.`ID`,`CAT_TABLE`.`NAME`,`CAT_TABLE`.`LEVEL`,`CAT_TABLE`.`PARENT`, COUNT(`AD_TABLE`.`ID`)
FROM `CAT_TABLE`
LEFT JOIN `AD_TABLE` ON `AD_TABLE`.`CAT_ID`=`CAT_TABLE`.`ID`
WHERE (`CAT_TABLE`.`ID`='C0100' OR `CAT_TABLE`.`PARENT`='C0100') AND `AD_TABLE`.`TYPE`='0'
GROUP BY `CAT_TABLE`.`ID`
我在沒有廣告被忽略的where子句類別獲得每個類別的計數正常,但包括AD_TABLE .
TYPE` =後「0」。我需要把所有的類別,即使計數爲0
,使用'COUNT(*)'。 –
COUNT(*)無效。問題在於WHERE條件 - >'AD_TABLE'.'TYPE' ='0'。如果我把它排除在外,我可以正確地得到計數,但它也可以算作其他類型。 – codeGEN