循环旋转矩阵(sql)

问题描述 投票:-2回答:1

我有父/子矩阵

Parent_col_ID  Child_col_ID
    1                2
    2                3
    3                4
    3                5

我需要修改它

Main_Parent Child1 Child2 Child3
  1            2     3      4
  1            2     3      5

我怎么能在sql中这样做?

sql hierarchical-data
1个回答
0
投票

你可以使用LEFT JOINNOT EXISTS()。这是您的查询:

--DROP TABLE CollEgues
--GO
CREATE TABLE CollEgues
(
     Parent_col_ID  int
     ,Child_col_ID  int
);

INSERT INTO CollEgues VALUES(1,2),(2,3),(3,4),(3,5);

SELECT   Main.Parent_col_ID     AS Main_Parent   
        ,Main.Child_col_ID      AS Child1
        ,Child1.Child_col_ID    AS Child2
        ,Child2.Child_col_ID    AS Child3
FROM CollEgues AS Main
    LEFT JOIN  CollEgues AS Child1 ON Main.Child_col_ID = Child1.Parent_col_ID
    LEFT JOIN  CollEgues AS Child2 ON Child1.Child_col_ID = Child2.Parent_col_ID
    WHERE NOT EXISTS (SELECT 1 FROM CollEgues C WHERE Main.Parent_col_ID=C.Child_col_ID);
© www.soinside.com 2019 - 2024. All rights reserved.