|
@@ -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
|