Explorar o código

沙盘图列表

xyxie hai 2 meses
pai
achega
5e4fb52169
Modificáronse 1 ficheiros con 11 adicións e 16 borrados
  1. 11 16
      models/sandbox/sandbox.go

+ 11 - 16
models/sandbox/sandbox.go

@@ -335,26 +335,21 @@ func GetSandboxAllParentByClassifyId(sandboxClassifyId int) (ids string, err err
 	o := global.DbMap[utils.DbNameIndex]
 	var sql string
 	if utils.DbDriverName == utils.DbDriverByDm {
-		sql = `WITH RECURSIVE parent_tree (ai_summary_classify_id, parent_id, level) AS (
-    -- 获取起始节点的父级
-    SELECT ai_summary_classify_id, parent_id, 1 as level
-    FROM ai_summary_classify
-    WHERE ai_summary_classify_id = (
-        SELECT parent_id 
-        FROM ai_summary_classify 
-        WHERE ai_summary_classify_id = ?
-    )
+		sql = `WITH RECURSIVE classify_tree (sandbox_classify_id) AS (
+    -- 基础查询:获取起始节点
+    SELECT sandbox_classify_id
+    FROM sandbox_classify 
+    WHERE sandbox_classify_id = ?
     
     UNION ALL
     
-    -- 递归获取所有上级节点
-    SELECT ac.ai_summary_classify_id, ac.parent_id, pt.level + 1
-    FROM ai_summary_classify ac
-    JOIN parent_tree pt ON ac.ai_summary_classify_id = pt.parent_id
-    WHERE ac.parent_id IS NOT NULL
+    -- 递归查询:获取直接子节点
+    SELECT sc.sandbox_classify_id
+    FROM sandbox_classify sc
+    INNER JOIN classify_tree ct ON sc.parent_id = ct.sandbox_classify_id
 )
-SELECT LISTAGG(ai_summary_classify_id, ',') WITHIN GROUP (ORDER BY level DESC) AS ids
-FROM parent_tree`
+SELECT LISTAGG(sandbox_classify_id, ',') WITHIN GROUP (ORDER BY sandbox_classify_id) AS ids
+FROM classify_tree`
 	}else{
 		sql = `SELECT
 		GROUP_CONCAT(DISTINCT m.sandbox_classify_id  ORDER BY m.level) AS ids