итоговая цена детей в другой таблице mysql

У меня есть две таблицы одно хранилище данных дочерней и родительской иерархии и других путей и потомков

+----------+------------+-----------+
| userid   |    parent  |    price  |
+----------+------------+------------
| 1        |    null    |      20   | 
| 2        |      1     |      20   | 
| 3        |      1     |      20   | 
| 4        |      2     |      20   | 
| 5        |      2     |      20   | 
| 6        |      3     |      20   | 
| 7        |      4     |      20   | 
+----------+------------+-----------+

Мне нужно получить все идентификаторы пользователей с родителем 1, а затем получить потомок в другой таблице и сгруппировать по сумме идентификаторов пользователей

+-------------+---------------+-------------+
| ancestor_id | descendant_id | path_length |
+-------------+---------------+-------------+
|           1 |             1 |           0 |
|           1 |             2 |           1 |
|           1 |             3 |           1 |
|           1 |             4 |           2 |
|           1 |             5 |           2 |
|           1 |             6 |           2 |
|           1 |             7 |           3 |
|           2 |             2 |           0 |
|           2 |             4 |           1 |
|           2 |             5 |           1 |
|           2 |             7 |           2 |
|           3 |             3 |           0 |
|           3 |             6 |           1 |
|           4 |             4 |           0 |
|           4 |             7 |           1 |
|           5 |             5 |           0 |
|           6 |             6 |           0 |
|           7 |             7 |           0 |
+-------------+---------------+-------------+

У меня есть запрос на сумму всех детей вместе

select 
sum(b.price)

from webineh_prefix_nodes_paths_tmp a

    join webineh_prefix_nodes_tmp b on (b.userid = a.descendant_id)

where a.ancestor_id = 1 

эта работа отлично, но общая сумма родитель 1

Мне нужно показать ниже результат для ребенка прямой (2,3)

 +----------+------------+-
    | userid   |    total   |
    +----------+------------+
    | 2        |    80      |
    | 3        |    40      |
    +----------+------------+

также в создании sqlfiddle мой вопросhttp://sqlfiddle.com/#!9/9415ed/2

Ответы на вопрос(2)

Решение Вопроса

Попробуй это;)

select ancestor_id as userid, sum(b.price) as total
from webineh_prefix_nodes_paths_tmp a 
join webineh_prefix_nodes_tmp b 
on b.userid = a.descendant_id
where a.ancestor_id in (select userid from webineh_prefix_nodes_tmp where parent = 1)
group by ancestor_id

SQLFiddle Demo

отредактированный

select ancestor_id as userid, sum(b.price) as total
from webineh_prefix_nodes_paths_tmp a 
join webineh_prefix_nodes_tmp b 
on b.userid = a.descendant_id
inner join webineh_prefix_nodes_tmp c
on a.ancestor_id = c.userid
and c.parent = 1
group by ancestor_id

SQLFiddle Demo

 Blank06 июл. 2016 г., 10:51
Вау, ты хочешь эторуководство?
 Vahid Alvandi06 июл. 2016 г., 10:58
отлично ! Как я могу объединить этот запрос с вашим ответомstackoverflow.com/a/37877231/6477873    во втором запросе есть еще одна таблица с рейтингом с вашим результатом ответа
 Blank06 июл. 2016 г., 10:39
@VahidAlvandi ОК, давайте использоватьJOINпроверь мойотредактированный ответьте, пожалуйста.
 Vahid Alvandi06 июл. 2016 г., 11:23
я сейчас создаю новый вопрос ... пожалуйста, перейдите по этой ссылкеstackoverflow.com/questions/38220478/combine-two-query-in-mysql
 Vahid Alvandi06 июл. 2016 г., 10:33
нормально работают, используйте IN, не снижайте скорость?
 Blank06 июл. 2016 г., 11:22
Не очень понятно, что вы сказали выше. :-( @VahidAlvandi
 Vahid Alvandi06 июл. 2016 г., 10:47
работать хорошо, мне нужна книга для учебника MySQL, как вы .. пожалуйста, представьтесь

попробуй это

select sum(b.price) from webineh_prefix_nodes_paths_tmp a join webineh_prefix_nodes_tmp b on (b.userid = a.descendant_id) where a.ancestor_id in ( 1,2,3) GROUP by ancestor_id
 Vahid Alvandi05 июл. 2016 г., 20:06
не сработает ваш ответ. благодарю вас

Ваш ответ на вопрос