首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 遞歸查詢:由父記錄查找所有關聯子記錄(支援四層)

     編輯:關於SqlServer

針對固定層級(四層)的父子階層結構,可用多層 `IN` 子查詢實現:

SELECT menu_id, menu_name, Father_Id
FROM Sys_Menu
WHERE menu_id = '18'
   OR Father_Id = 18                                    -- 第 1、2 層
   OR Father_Id IN (SELECT menu_id FROM Sys_Menu a WHERE menu_id = '18' OR Father_Id = 18)  -- 第 3 層
   OR Father_Id IN (
       SELECT menu_id FROM sys_menu
       WHERE Father_Id IN (SELECT menu_id FROM Sys_Menu a WHERE menu_id = '18' OR Father_Id = 18)
   ); -- 第 4 層

註:若層級不固定,建議使用 CTE 遞歸查詢(`WITH RECURSIVE`)更靈活。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved