相关疑难解决方法(0)

如何在MySQL中进行递归SELECT查询?

我有一张桌子:

col1 | col2 | col3
-----+------+-------
1    | a    | 5
5    | d    | 3
3    | k    | 7
6    | o    | 2
2    | 0    | 8
Run Code Online (Sandbox Code Playgroud)

如果用户搜索"1",程序将查看col1具有"1"的程序,然后它将获得col3"5"中的值,然后程序将继续搜索"5",col1并且将获得"3" in col3等等.所以它会打印出来:

1   | a   | 5
5   | d   | 3
3   | k   | 7
Run Code Online (Sandbox Code Playgroud)

如果用户搜索"6",它将打印出来:

6   | o   | 2
2   | 0   | 8
Run Code Online (Sandbox Code Playgroud)

如何构建SELECT查询来做到这一点?

mysql sql query-optimization recursive-query

79
推荐指数
5
解决办法
10万
查看次数

以有效和简单的方式实现等级,父/子关系

我有一张桌子

create table site
(
site_Id int(5),
parent_Id int(5),
site_desc varchar2(100)
);
Run Code Online (Sandbox Code Playgroud)

领域的意义:

  • site_Id:网站的ID
  • parent_Id:站点的父ID
  • site_desc:虽然与问题无关,但它有网站的描述

要求是,如果我有一个site_id作为输入,我需要在网站下面标记所有ID.例如:

                    A
                   / \
                  B   C
                / | \ /\
               D  E F G H
              /\
             I  J
Run Code Online (Sandbox Code Playgroud)

所有节点都是site_Id.

该表包含如下数据:

Site_id  | Parent_ID  |  site_desc
_________|____________|___________
 A       |   -1       |   
 B       |    A       |
 C       |    A       |
 D       |    B       |
 E       |    B       |
 F       |    B       |
 I       |    D       |
 J       |    D       |
Run Code Online (Sandbox Code Playgroud)

......

A是B和C的父级,依此类推.

如果B是给定的输入,那么查询需要获取D,E,I,F,J

它目前通过循环中的多个查询来实现,但我想在最少数量的查询中实现这一点.

我目前正在做的是::

投票 …

php mysql sql algorithm hierarchical-data

15
推荐指数
3
解决办法
5461
查看次数