簡體   English   中英

當我們傳遞parent_id時,MySQL查詢將樹中的所有子級都獲取

[英]MySQL Query to get all Children in tree when we pass parent_id

我一直在查看查詢結果,該結果是已傳遞給查詢的上級emp_id下的雇員總數。

示例:對於emp_id 1,他的報告者為'2,3,4,5',對於emp_id 3,其報告者為'6,7',而在emp_id 6下又為'8,9'為報告者, emp_id 9報告人為'10'

現在,當我將manger_id'1'傳遞給查詢時,我應該獲得全部9名員工。

下面是我的查詢,如果一個雇員下有40名雇員,那將不起作用。

    SELECT manager_id,emp_id FROM users ,(SELECT @head := 2) head
    WHERE  FIND_IN_SET(manager_id, @head) > 0 AND @head := CONCAT(@head, "," , emp_id) ORDER BY manager_id

在我的表格結構中,每個emp_id都有一個manager_id列

請幫助與MySQL查詢的MySQL函數。

您是指遞歸查詢嗎?

如果是,則可以閱讀以下文檔:SQL中的樹: 嵌套集和實體化路徑

這種方式不使用查詢獲取樹數據,而是使用表結構獲取相同數據。 很容易查詢。

請在下面查詢。 您可以將硬編碼的管理器ID值放在“初始化”部分,也可以傳遞變量。

select  EmpID,
        ManagerID 
from    (select ManagerID, EmpID from employee
         order by ManagerID, EmpID) employee_sorted,
        (select @pv := '1') initialization
where   find_in_set(ManagerID, @pv) > 0
and     @pv := concat(@pv, ',', EmpID)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM