gpt4 book ai didi

sql - 如何使用多级 SQL 创建类别树层次结构?

转载 作者:行者123 更新时间:2023-12-03 23:17:59 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to create query from parent child hierarchy table

(1 个回答)


4年前关闭。




我有一个表示类别层次结构的表,层次结构顶部的元素的父 ID 为 0。
CatID 列中有超过 54K 个唯一 ID。每个 ID 都可以是另一个 ID 的父级。类别有 8 个级别深。
下表举例如下:

CatID   ParentID  CatName
1 0 Home
. . .
. . .
20 1 Vehicles
. . .
35 20 SUV
36 20 Motorbikes
. . .
90 35 BMW
91 35 Toyota
. . .
234 91 Land Cruiser

这是我想要达到的结果:
Cat0   Cat1       Cat2        Cat3    Cat4         Cat5   Cat6   Cat7
Home Vehicles SUV Toyota LandCruiser
Home Vehicles SUV BMW
Home Vehilces Motorbikes
. . .

我怎样才能做到这一点?我是否需要某种循环来遍历所有 ID?

之前有人问过 similar question,所以我使用了相同的表结构来解释我的观点,但答案并不是我想要的。

有人可以帮忙吗?

最佳答案

这里是:

SELECT
L0.CatName AS Cat0,
L1.CatName AS Cat1,
L2.CatName AS Cat2,
L3.CatName AS Cat3,
L4.CatName AS Cat4,
L5.CatName AS Cat5,
L6.CatName AS Cat6,
L7.CatName AS Cat7
FROM
YourTable AS L0
LEFT JOIN YourTable AS L1
ON L0.CatID = L1.ParentID
LEFT JOIN YourTable AS L2
ON L1.CatID = L2.ParentID
LEFT JOIN YourTable AS L3
ON L2.CatID = L3.ParentID
LEFT JOIN YourTable AS L4
ON L3.CatID = L4.ParentID
LEFT JOIN YourTable AS L5
ON L4.CatID = L5.ParentID
LEFT JOIN YourTable AS L6
ON L5.CatID = L6.ParentID
LEFT JOIN YourTable AS L7
ON L6.CatID = L7.ParentID
WHERE
L0.ParentID = 0

关于sql - 如何使用多级 SQL 创建类别树层次结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45796694/

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