2016-07-06 3 views
0

У меня есть два запрос в три таблицеобъединить два запроса в MySQL других вопросов

таблица 1 = hirarchey из Определения цены USers

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

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

+-------------+---------------+-------------+ 
| 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 | 
+-------------+---------------+-------------+ 

это http://sqlfiddle.com/#!9/9415ed/30 работу штраф за сумму цены умершего

также иметь другую таблицу с вычислите ранжирование результатов предыдущего запроса

http://sqlfiddle.com/#!9/b5de18/1

мне нужно объединить два запрос очень спасибо

подробнее о втором запросе в этой ссылке compare result with other table mysql

два результат запроса работает нормально, но второй запрос читает таблицу user_buys, я буду user_buys удалять и получать от первого запроса

+0

Пожалуйста, разместите здесь свои таблицы. SQL Fiddle - это хорошо и все, но он должен быть дополнением. – sagi

+0

Пожалуйста, проверьте эту ссылку http://stackoverflow.com/questions/37875133/compare-result-with-other-table-mysql –

+0

Каким должен быть результат? – Philipp

ответ

0

Просто подумайте в том числе, если вы хотите использовать вложенную модель набора ...

DROP TABLE IF EXISTS my_table; 

CREATE TABLE my_table 
(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY 
,price INT NOT NULL 
,lft INT NOT NULL 
,rgt INT NOT NULL 
); 

INSERT INTO my_table VALUES 
(1,20,1,14), 
(2,20,2,9), 
(3,20,10,13), 
(4,20,3,6), 
(5,20,7,8), 
(6,20,11,12), 
(7,20,4,5); 

SELECT SUM(x.price) 
    FROM my_table x 
    JOIN my_table y 
    ON y.lft < x.lft 
    AND y.rgt > x.rgt 
WHERE y.id = 1; 
+--------------+ 
| SUM(x.price) | 
+--------------+ 
|   120 | 
+--------------+ 
+0

Мне не нужна вложенная модель набора. очень спасибо.пожалуйста, помогите мне объединить мои запросы –

Смежные вопросы