gpt4 book ai didi

php - 如何使用 php 和我的 sql 检索根节点的所有节点

转载 作者:行者123 更新时间:2023-11-30 23:20:57 25 4
gpt4 key购买 nike

我有这样的结构:

  • A(根节点)有两个 child B(左 child )和C(右 child )。
  • 同样B也有两个节点D(左 child )和E(右 child )。
  • 同样C也有两个结点F(左 child ),G(右 child )这样一个。

我的问题是:

  • 如果我输入A(根节点),它将显示A下的所有子节点,输出是这样的B, C, D, E, F, G, <
  • 类似地,如果我输入 B,那么输出将像这样 DE

我的第二个查询是,如果我输入 A 那么它会显示哪个是他的左 child 和右 child 。

我的表结构是这样的

id     c_n      p_n 

1 B A

2 C A

3 D B

4 E B

等等。

这里有三个字段,一个是idc_np_n

任何人都可以帮助我吗?

最佳答案

鉴于您当前的架构,以下内容将根据您的请求以逗号分隔的字符串形式(有条件地)从 1 级或 2 级层次结构中提取子节点

SELECT 
CONCAT(
GROUP_CONCAT(t1.c_n),
IF(COUNT(t2.c_n), ',', ''),
GROUP_CONCAT(t2.c_n)
) AS nodex
FROM table_name AS t1
LEFT JOIN table_name AS t2 ON t1.c_n = t2.p_n
WHERE t1.p_n = 'A'
GROUP BY t1.p_n

但是,您应该考虑切换到嵌套集 模型以简化选择并提高选择速度。

关于php - 如何使用 php 和我的 sql 检索根节点的所有节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15464225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com