Вам понадобится UNION, и я предлагаю удалить дубликаты записей на их соответствующих уровнях. Кроме того, нет необходимости включать значения «NULL», если ваше намерение состоит в том, чтобы представить пользователям, как и в веб-приложениях ...
select L1.Category_ID,
L1.name,
"1" as HierarchyLevel,
count(L2.Category_ID) as NextLevelCount
from Category L1
LEFT JOIN Category L2
on L1.Category_ID = L2.Parent
where L1.name = "ELECTRONICS"
group by L1.Category_ID
UNION
select L2.Category_ID,
L2.name,
"2" as HierarchyLevel,
count(L3.Category_ID) as NextLevelCount
from Category L1
JOIN Category L2
on L1.Category_ID = L2.Parent
LEFT JOIN Category L3
on L2.Category_ID = L3.Parent
where L1.name = "ELECTRONICS"
group by L2.Category_ID
UNION
select L3.Category_ID,
L3.name,
"3" as HierarchyLevel,
count(L4.Category_ID) as NextLevelCount
from Category L1
JOIN Category L2
on L1.Category_ID = L2.Parent
JOIN Category L3
on L2.Category_ID = L3.Parent
LEFT JOIN Category L4
on L3.Category_ID = L4.Parent
where L1.name = "ELECTRONICS"
group by L3.Category_ID
UNION
select L4.Category_ID,
L4.name,
"4" as HierarchyLevel,
1 as NextLevelCount
from Category L1
JOIN Category L2
on L1.Category_ID = L2.Parent
JOIN Category L3
on L2.Category_ID = L3.Parent
JOIN Category L4
on L3.Category_ID = L4.Parent
where L1.name = "ELECTRONICS"
Это, очевидно, фиксируется на 4-х уровнях, но будет профсоюзу их в единый список, но не дубликатов, как вы представили. Я также придерживался уровня иерархии только для справочных целей. Чтобы получить подсчеты на каждом уровне, вы должны сделать LEFT JOIN на следующий уровень, в противном случае вы будете пропускать возможные предметы на уровне, который вы пытаетесь получить, но остальные ДОЛЖНЫ оставаться как INNER JOINs.
Если вы имеете дело с продуктами, я думаю, что если не после 4-х уровней глубоко они не могут найти что-то, что есть большая проблема :)
Ключевое слово 'UNION' может быть направлено вправо: http://dev.mysql.com/doc/refman/5.1/en/union.html – Quasdunk
Я хочу рассчитать всю категорию под категорией ELECTRONICS –
@vikastyagi Итак, из приведенных выше результатов все, что вам действительно нужно, это '19'? – DaveRandom