WITH RECURSIVE T ( ID, parent_id,depart_name ) AS ( SELECT A.ID, A.parent_id, a.depart_name FROM sys_depart A WHERE A.id = 'bcb9dc287fbe40178162a6f9c877f3ef' UNION ALL SELECT b.ID, b.parent_id , b.depart_name FROM sys_depart b, T WHERE b.parent_id = T.id ) SELECT ID, parent_id as "pId",depart_name as "text" FROM T
WITH RECURSIVE r AS (
SELECT * FROM test1 as t WHERE m_id = 18
union ALL
SELECT t.* FROM trade.merchant as t, r WHERE tree.par = r.m_id
)
SELECT * FROM r where stat = 1 ORDER BY m_id
它會一直遞歸調bai用,直到沒有記錄返回。
第一步,du會得到 SELECT * FROM test1 as t WHERE m_id = 18 ,一條記錄。zhi並放在R中
然后再執行 SELECT t.* FROM trade.merchant as t, r WHERE tree.par = r.m_id 放入R中。 之后不斷dao循環這一步。