Добрый день
Есть 2 таблицы:
CREATE TABLE `category` (
    `id` INT(10) NOT NULL AUTO_INCREMENT,
    `parent` INT(10) NULL DEFAULT NULL,
    `name` VARCHAR(50) NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
CREATE TABLE `value` (
    `id` INT(10) NOT NULL AUTO_INCREMENT,
    `parent` INT(10) NULL DEFAULT NULL,
    `value` INT(10) NULL DEFAULT NULL,
    PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
В первой таблице находятся категории, во второй некоторые значения, примерное содержание таблиц:
INSERT INTO `category` (`id`, `parent`, `name`) VALUES (1, 0, 'cat1'), (2, 1, 'cat2'), (3, 1, 'cat3'), (4, 0, 'cat4'), (5, 4, 'cat5'), (6, 4, 'cat6');
INSERT INTO `value` (`id`, `parent`, `value`) VALUES (1, 2, 1), (2, 3, 2), (3, 2, 3), (4, 5, 4), (5, 6, 5), (6, 2, 6);
есть родительские и подчиненные категории, 
А теперь собственно говоря проблема, как посчитать сумму для родителей сумму подчиненных категорий и сумму каждой категории одним запросом?
для наглядности ожидаемый результат
id | parent | name | sum
1  | 0        | cat1 | 12
2  | 1        | cat2 | 10
3  | 1        | cat3 | 2
4  | 0        | cat4 | 9
5  | 4        | cat5 | 4
6  | 4        | cat6 | 5 
пробовал 
SELECT t.* , SUM(t2.value) as sum FROM category t LEFT  JOIN value t2 ON ( t.parent = t2.parent OR t.id = t2.parent ) GROUP BY IF(t.parent = 0 , t.parent , t.id) ORDER BY t.parent , t.id
но выводит:
id | parent | name | sum
1  |  0       | cat1 | NULL
2  | 1        | cat2 | 10
3  | 1        | cat3 | 2
5  | 4        | cat5 | 4
6  | 4        | cat6 | 5