У меня есть таблицы со следующей структурой.получение количества каждой категории, отфильтрованной по полю другой таблицы
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`
я получил кол каждой категории правильно, но после включения AD_TABLE .
type` = «0» в категории где положение, которое не имеют АЗ игнорировались. Мне нужно, чтобы получить все категории, даже если счетчик равен 0.
Если вы хотите считать 'NULL's, а также, использовать' COUNT (*) '. –
COUNT (*) не работает. Проблема заключается в условии WHERE -> 'AD_TABLE' .'TYPE' = '0'. Если я оставлю это, я получаю счет правильно, но он будет учитывать и другие типы. – codeGEN