如何在 sql 服务器 2012 中为 child 找到 parents?

How to approach to find parents for child in sql server 2012?

我有一个 table 这样的:

如果我得到一个或一个 menuID 列表,我需要找到所有 menuID 的 parents。例如,如果我的 MenuID 为 1601120013,我需要找到以下内容。

我是 sql 的新手,我什至不确定如何处理这种情况。

您可以使用 Recursive CTE

WITH cte 
     AS (SELECT menuld, 
                menutitle, 
                parentmenuld 
         FROM   Yourtable 
         WHERE  menuld = 1601120013 
         UNION ALL 
         SELECT t.menuld, 
                t.menutitle, 
                t.parentmenuld 
         FROM   cte c 
                INNER JOIN Yourtable t 
                        ON t.menuld = c.parentmenuld) 
SELECT * 
FROM   cte