簡體   English   中英

SQL查詢以獲取樹中所有元素的ID

[英]SQL query to get id of all elements in a tree

誰能建議我如何獲取特定樹的所有子代的ID。

表結構:

Table 1 : customer                         Table 2 : hierarchy
cId     hId                                hId            cId
1       1                                  1              null
2       2                                  2              null
3       3                                  3                2
4       4                                  4                3
5       5                                  5                2
6       6                                  6                5
7       7                                  7                7

表(客戶)是主要元素,表層次結構僅維護客戶的層次結構。

我給cId 2作為root客戶(父母)。 現在,我必須獲取所有cId ,它們是cId 2cId 2 (給定)。

上述方案的預期結果將是2,3,4,5,6 (已經給出2個,這些ID設置為客戶ID)。 這是查詢應返回的實際答案。

我尋找遞歸查詢,過程和聯接,但無法獲得此結果。

適用於Mysql,PostgreSQL和SQL Server

您可以通過CTE (公用表表達式)在SQL Server中使用遞歸查詢。

語法如下:

WITH CTE
AS
(
    SELECT ID FROM HIERARCHY where ID =2
    UNION ALL
    SELECT ID FROM HIERARCHY child
    INNER JOIN CTE parent on child.parentid=parent.id
)
SELECT *
FROM CTE

在此處閱讀有關此內容的更多信息: http : //technet.microsoft.com/zh-cn/library/ms186243(v=sql.105).aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM