【问题标题】:combine two query in mysql of other questions [duplicate]结合其他问题的mysql中的两个查询[重复]
【发布时间】:2016-11-08 07:07:26
【问题描述】:

我在三个表中有两个查询

表 1 = 用户价格层次结构

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

两个查询结果工作正常,但第二个查询读取表 user_buys,我将 user_buys 删除并从第一个查询中获取

【问题讨论】:

  • 请在此处发布您的表格定义。 SQL Fiddle 很好,但它应该是一个补充。
  • 结果应该是什么样子?
  • 两个查询结果正常,但第二个查询读取表 user_buys ,我将 user_buys 删除并从第一个查询中获取

标签: php mysql sql sql-server join


【解决方案1】:

只是大声思考,如果您要改用嵌套集合模型...

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

【讨论】:

  • 我不需要嵌套集模型。非常感谢。请帮我结合我的查询
猜你喜欢
  • 1970-01-01
  • 2021-11-09
  • 1970-01-01
  • 1970-01-01
  • 2012-04-22
  • 1970-01-01
  • 1970-01-01
  • 2013-04-07
  • 1970-01-01
相关资源
最近更新 更多