簡體   English   中英

復雜的SQL查詢以獲取JIT spacetree的數據

[英]complex sql query to get data for JIT spacetree

我需要建立JSON字符串像以下spacetree: - http://philogb.github.io/jit/static/v20/Jit/Examples/Spacetree/example2.code.html

目前,我正在使用以下查詢:

SELECT BT.ParentID,BT.CustomerID,CU.firstname 
from BinaryTree BT INNER JOIN Customers CU on BT.CustomerID=CU.CustomerID
WHERE [ParentID] = 2
ORDER BY BT.ParentID,BT.CustomerID

返回結果如下:

ParentID   CustomerID  firstname
     2      100176         Bill
     2      115468        will

這里的意思是2是樹的根元素,而100176,115468是子元素。 但是這些子節點100176和115468也有一些子節點,這意味着這些是其他一些子節點的根/父節點。 意思是查詢:

SELECT BT.ParentID,BT.CustomerID,CU.firstname 
from BinaryTree BT INNER JOIN Customers CU on BT.CustomerID=CU.CustomerID
WHERE [ParentID] = 100176
ORDER BY BT.ParentID,BT.CustomerID

結果為100176:-

 ParentID   CustomerID  firstname
   100176    100222       J
   100176    348645       K

SELECT BT.ParentID,BT.CustomerID,CU.firstname 
from BinaryTree BT INNER JOIN Customers CU on BT.CustomerID=CU.CustomerID
WHERE [ParentID] = 115468        
ORDER BY BT.ParentID,BT.CustomerID

結果為115468:-

 ParentID   CustomerID  firstname
  115468     154756       D
  115468     348480       L

但是我需要所有的父母和孩子在一個查詢中,例如:

 ParentID   CustomerID  firstname
    2        100176       Bill
    2        115468       will
  100176     100222       J
  100176     348645       K
  115468     154756       D
  115468     348480       L

100176和115468的子節點也可以具有子節點,因此在上述結果中也應將這些作為100222,348645的結果。

有誰能夠幫助我?

提前致謝

WITH CustomerTree AS (
    SELECT ParentID
          ,CustomerID
          ,0 AS Level
    FROM BinaryTree
    WHERE ParentID = 2
  UNION ALL
    SELECT BinaryTree.ParentID
          ,BinaryTree.CustomerID
          ,CustomerTree.Level + 1 AS Level
    FROM BinaryTree
         INNER JOIN CustomerTree
            ON BinaryTree.ParentID = CustomerTree.CustomerID
)
SELECT CustomerTree.ParentID
      ,CustomerTree.CustomerId
      ,Customers.FirstName
FROM CustomerTree
     INNER JOIN Customers
         ON CustomerTree.CustomerID = Customers.CustomerID

暫無
暫無

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

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