多嵌套(递归)查询,如继承

Multi nested (Recursive) Query like inheritance

我有一个包含一些类别的 table,这些类别将有一些 child 个类别,这些 child 个类别可能有自己的 children,这个流程将继续未知数量的 Childs 或 parents.

例如,我有两个主要类别,这两个类别有 5 个 child 类别,这 5 个类别有自己的 15 children(每个 3 个)和 15 child ren 类别可能有一些 children 等等...

我需要查询以找出与其 parent 类别关联的所有 children,请参见下图。

我已经从堆栈溢出中尝试了与这种情况类似的解决方案,但对我来说没有任何效果。

有没有办法在 SQL 服务器中实现这个?

感谢您的帮助

根据预期输出,我认为没有任何使用递归的要求。一个简单的左连接就可以完成这项工作。

见下文:

CREATE TABLE CAR_CATEGORY(
ID INT,
NAME NVARCHAR(256),
PARENT INT,
is_parent NVARCHAR(3));

INSERT INTO CAR_CATEGORY(ID,NAME,PARENT,is_parent) VALUES
(1,'AUTO Sector',0,'yes'),
(2,'4 wheelers',1,'yes'),
(3,'Cars',2,'yes'),
(4,'Diesel cars',3,'yes'),
(5,'Petrol cars',3,'yes'),
(6,'CNG cars',3,'yes'),
(7,'Suzuki Diesel cars',4,'no'),
(8,'TATA Petrol cars',5,'yes'),
(9,'TATA Nexon',8,'no')

SELECT 
   CAR_CAT1.NAME ParentCategory, 
   COALESCE(CAR_CAT2.NAME,'No child') AS ChildCategory
FROM 
   CAR_CATEGORY CAR_CAT1
LEFT JOIN CAR_CATEGORY CAR_CAT2 ON
   CAR_CAT1.ID = CAR_CAT2.Parent
WHERE 
   CAR_CAT1.is_parent = 'yes'