直接上代碼 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;