2016-07-06 78 views
0

我有兩個查詢在三表中的其他問題mysql的結合了兩種查詢

表1 = hirarchey價格的用戶

+----------+------------+-----------+ 
| 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中的所有用戶ID,然後得到後裔在其他表和組通過用戶ID和價格

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

2查詢結果工作正常,但第二個查詢讀取表user_buys,我會user_buys刪除並從第一個查詢獲得

+0

請在這裏發表你的表格定義。 SQL小提琴是好的,但它應該是一個補充。 – 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

我不需要嵌套集模型。非常感謝。請幫助我結合我的querys –