要查詢所有上級,可以使用遞歸查詢的方法來實現。以下是一個示例查詢語句,假設有一個名為employee
的表,其中包含員工的ID和上級ID:
WITH RECURSIVE cte AS (
SELECT id, parent_id
FROM employee
WHERE id = <employee_id> -- 指定要查詢的員工ID
UNION ALL
SELECT e.id, e.parent_id
FROM employee e
JOIN cte ON e.id = cte.parent_id
)
SELECT *
FROM cte;
在上面的查詢語句中,首先使用WITH RECURSIVE
關鍵字創建了一個遞歸公共表表達式(CTE),其中包含了指定員工及其所有上級的ID。然后使用UNION ALL
將當前查詢結果與employee
表再次連接,直到找到所有上級為止。最后,通過SELECT * FROM cte
語句將所有上級查詢出來。