[英]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 2
子cId 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.