gpt4 book ai didi

php - 单个表中的父子关系

转载 作者:行者123 更新时间:2023-11-29 02:29:19 25 4
gpt4 key购买 nike

我有一个如下所示的表格。

parentid   uid
10001 10001
10001 10002
10001 10003
10002 10004
10004 10005
10003 10006
10005 10007

我需要在这个单表中的行之间建立父子关系。

我需要以相反的顺序获取父级 直到 4 级。例如,最后一条记录是 uid 10007parentid 是 10005。现在uid 10005的父级是1000410004的父级是1000210002 的父级是 10001

我正在使用 MySQL,所以递归似乎是不可能的。我有哪些选择以及如何解决这个多层次问题。我使用 PHP/MySQL。

提前谢谢你们。

最佳答案

由于您有有限的 4 个级别,因此您不需要递归(尽管能够使用 MS SQL CTE 等会很方便)。

类似于:

SELECT
t4.uid as child,
--t3.uid as parent,
--t2.uid as grand_parent,
--t1.uid as great_grand_parent,
t1.parentid as great_great_grand_parent
FROM
your_table_name t1

inner join your_table_name t2
on t2.parentid = t1.uid

inner join your_table_name t3
on t3.parentid = t2.uid

inner join your_table_name t4
on t4.parentid = t3.uin

where
t4.uid = '10007' -- your start node.

如果您需要对多个节点执行此操作,则需要将其加入到选择起始节点的内容中,或者例如将上面的 WHERE t4.uid = '10007' 子句替换为WHERE t4.uid IN (SELECT DISTINCT uid FROM your_table_name)

这是徒手完成的,对于拼写错误,我们深表歉意。

关于php - 单个表中的父子关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15542880/

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