SQL 遞歸查詢

直接上代碼  blog

CREATE TABLE City
(
    id INT PRIMARY KEY IDENTITY(1,1) NOT NULL,
    city_name NVARCHAR(100) NOT NULL,
    parent_id INT NOT NULL
)

INSERT INTo City(city_name,parent_id) VALUES('北京',0)
INSERT INTo City(city_name,parent_id) VALUES('昌平區',1)
INSERT INTo City(city_name,parent_id) VALUES('天通苑',2)
INSERT INTo City(city_name,parent_id) VALUES('天通苑1區',3)
INSERT INTo City(city_name,parent_id) VALUES('朝陽區',1)
INSERT INTo City(city_name,parent_id) VALUES('東城區',9)
INSERT INTo City(city_name,parent_id) VALUES('亂亂2',6)
-------------------------------------------------
--根據節點ID獲取全部子節點
-------------------------------------------------
SELECT * FROM City;
WITH CityTree AS 
(
    SELECT * from City where parent_id = 0--須要查找的父節點
    UNION ALL 
    SELECT City.* from Citytree
    JOIN City on CityTree.id = City.parent_id
)
SELECT * FROM CityTree;
-------------------------------------------------
--根據節點ID獲取全部父節點
-------------------------------------------------
SELECT * FROM City;
with CityTree AS
(
    SELECT * from City where Id=4 --須要查找的子節點
    UNION ALL 
    SELECT City.* from CityTree
    JOIN City on CityTree.parent_id= City.Id
)
SELECT * from CityTree;
相關文章
相關標籤/搜索